2010-10-11 7 views
7

मैं बस SharePoint में किसी सूची आइटम के लिए एक साधारण पाठ या हाइपरलिंक क्षेत्र को जोड़ने के लिए कोशिश कर रहा हूँ 2007प्रोग्राम की स्थापना फ़ील्ड मान

मैं क्षेत्र कोई समस्या नहीं जोड़ सकते हैं:

list.Fields.Add("MyField",SPFieldType.Text, false); 

और यह मेरी सूची वस्तुओं पर ठीक दिखता है। हालांकि कोई फर्क नहीं पड़ता कि मैं किस तरह से प्रयास करता हूं, मैं प्रोग्राम के लिए क्षेत्र के लिए मूल्य निर्धारित नहीं कर सकता। मैंने कोशिश की:

list.items[0]["MyField"] = "text"; 

और मैं एक क्षेत्र में लोड करने की कोशिश की:

SPField field = list.items[0].Fields["MyField"]; 

और यह वहाँ की स्थापना, और डिफ़ॉल्ट मान और अद्यतन, लेकिन कुछ भी क्या इतना कभी होता है की स्थापना।

मैं हमेशा list.update() के साथ अपना कोड ब्लॉक समाप्त करता हूं; या अगर मैं आइटम पर ही काम कर रहा हूं item.update(); तो मैं कम से कम उस लापता नहीं हूँ। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

धन्यवाद

+0

क्या सामग्री प्रकार सूची में सक्षम हैं? – cement

+0

नहीं वे नहीं हैं। – Dynde

उत्तर

10

प्रयास करें:

list.items[0]["MyField"] = "text"; 
list.items[0].Update(); 

अधिक जानकारी के लिए here और here लोग हैं, जो दर्ज किया है के लिए देखें:

SPListItem item = list.items[0]; 
item["MyField"] = "text"; 
item.Update(); 

हालांकि यह बराबर लगता है, इसके बाद के संस्करण कोड के समान नहीं है वही व्यवहार

+1

पृथ्वी पर क्यों वे सूचकांक को इतनी खराब कर देंगे? :/ – Dynde

+0

@ डिंडी वे नहीं करते हैं। यह एक मूल्य प्रकार वापस लौटाया गया था और संशोधित से अलग नहीं है। यह सिर्फ एक * नया * वस्तु वापस आ गया है। –

3

आप एक नए क्षेत्र को जोड़ने और एक डिफ़ॉल्ट मान सेट करने के लिए यह कोशिश कर सकते हैं? अवांछित कोड मुझे बताएं कि यह कैसे जाता है।

SPFieldText fldName = (SPFieldText)list.Fields.CreateNewField(SPFieldType.Text.ToString(), "mycolumn"); 
fldName.DefaultValue = "default"; 
list.Fields.Add(fldName); 
list.Update(); 
+0

वही सौदा - फ़ील्ड सफलतापूर्वक बनाया गया - कोई मूल्य नहीं ... – Dynde

+0

अजीब !! कोड का परीक्षण करें और यह मेरे लिए ठीक काम करता है। – Shoban

1

मुझे हमेशा सूचीबद्ध किया गया है कि सूची आइटम का संदर्भ प्राप्त करें और विशेष रूप से अपडेट करें, इंडेक्सर रूट का उपयोग करने के विपरीत। समृद्ध के पहले उदाहरण उल्लेख की तरह।

http://www.sharepointdevwiki.com/display/public/Updating+a+List+Item+programmatically+using+the+object+model

0

यह सब से ऊपर चर्चा से प्रतीत होता है कि आप एक सूची ईवेंट हैंडलर में फ़ील्ड मान सेट करने के लिए कोशिश कर रहे हैं और आप ईवेंट को अपडेट करने आइटम को जोड़ने या आइटम में मान सेट कर रहे हैं। यदि ऐसा है तो आपको AfterProperties पर विचार करने की आवश्यकता है। याद रखें कि हमारे पास * आईएनजी और * एड इवेंट हैं और * आईएनजी कार्यक्रमों के मामले में हमें पहले प्रॉपर्टीज और आफ्टरप्रॉपर्टीज के साथ काम करने की ज़रूरत है।

मुझे आशा है कि इससे मदद मिलती है!