2011-11-11 12 views
6

मेरे पास एक कस्टम सूची है जिसमें कस्टमकंटेंट टाइप हो सकता है। इस तरह मैं एक नया आइटम बना है:प्रोग्रामिंग के नए SPListItem का नाम कैसे सेट करें?

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

समस्या यह है, जब मैं इस के बाद मेरी सूची में देख रहा हूँ मुझे लगता है कि:

enter image description here

जब मैं के माध्यम से सूची में जाने के एक वेबब्रोसर और सामग्री प्रकार मैन्युअल रूप से बनाते हैं, हमेशा कुछ ठीक है। (जिसका अर्थ है कि शीर्षक "रूट" है और आईडी नहीं है)।

उत्तर

5

आपके उत्तर दोनों के लिए धन्यवाद!

समाधान दोनों उत्तरों का मिश्रण था। इसके अतिरिक्त आपको सूची को फिर से लोड करना होगा:

  //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

"नाम" फ़ील्ड फ़ाइल नाम से मेल खाता है। क्या आप स्तंभ शीर्ष में देखते हैं के बावजूद, 1125_.000 सूची आइटम, जो स्वत: यदि आप एक की आपूर्ति नहीं करते उत्पन्न होता है के फ़ाइल नाम है:

rootItem["Name"] = "myname"; 

"नाम" एक अंतर्निहित क्षेत्र है।

0

पहले सामग्री प्रकार आईडी सेट करने का प्रयास करें, फिर rootItem.update() करें। उसके बाद अपनी फ़ील्ड सामग्री सेट करें।

//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(); 
संबंधित मुद्दे