2011-11-11 25 views
6

Tôi có một danh sách tùy chỉnh có thể chứa CustomContentType. Đây là cách tôi tạo một mục mới:Làm thế nào để đặt tên của một SPListItem mới theo chương trình?

//Create root folder 
SPListItem rootItem = navigation.Items.Add(); 
SPContentType folderType = navigation.ContentTypes["ListLevel"]; 
rootItem[SPBuiltInFieldId.Title] = "root"; 
rootItem["ContentTypeId"] = folderType.Id; 
rootItem.Update(); 

Vấn đề là, khi tôi đang nhìn vào danh sách của tôi sau này, tôi thấy rằng:

enter image description here

Khi tôi đi vào danh sách qua một webbrowser và tạo kiểu nội dung theo cách thủ công, mọi thứ đều ổn. (Có nghĩa là Tiêu đề là "gốc" và không phải là ID).

Trả lời

5

Cảm ơn cả hai câu trả lời của bạn!

Giải pháp là hỗn hợp của cả hai câu trả lời. Ngoài ra, bạn phải tải lại danh sách:

  //Create root folder 
      SPListItem rootItem = navigation.Items.Add(); 
      SPContentType contentType = navigation.ContentTypes["ListLevel"]; 

      rootItem["ContentTypeId"] = contentType.Id; 
      rootItem["Title"] = "root"; 
      rootItem.Update(); 
      navigation.Update(); 

      rootItem = navigation.GetItemById(rootItem.ID); 
      rootItem["Name"] = "root"; 
      rootItem.Update(); 
1

Trường "tên" tương ứng với tên tệp. Mặc dù những gì bạn thấy trong tiêu đề cột, 1125_.000 là tên tệp của mục danh sách được tạo tự động nếu bạn không cung cấp một:

rootItem["Name"] = "myname"; 

"Tên" là trường được tích hợp sẵn.

0

Cố gắng đặt ID loại nội dung trước rồi thực hiện rootItem.update(). Đặt nội dung trường của bạn sau đó.

//Create root folder 
SPListItem rootItem = navigation.Items.Add(); 
SPContentType folderType = navigation.ContentTypes["ListLevel"]; 
rootItem["ContentTypeId"] = folderType.Id; 
rootItem.Update(); 
rootItem[SPBuiltInFieldId.Title] = "root"; 
rootItem.Update(); 
Các vấn đề liên quan