2012-01-26 7 views
8

जब मैं कोड (सी #) का उपयोग करते हुए मैं हमेशा साइट के लिए एक मौजूदा क्षेत्र से जोड़ने के लिए एक SPFieldLink के उपयोग के उदाहरण खोजने के CONTENTTYPES बनाने औरसामग्री प्रकार में फ़ील्ड जोड़ते समय मुझे फ़ील्ड लिंक का उपयोग क्यों करना चाहिए?

contentType.FieldLinks.Add() 

के माध्यम से इस जोड़ने के बारे में प्रलेखन के लिए खोज लेकिन वहाँ भी जोड़ने के लिए एक विधि है सीधे मैदान। क्या कोई अच्छा कारण है कि मुझे

contentType.Fields.Add(SpField()) 

का उपयोग करके फ़ील्ड को आसानी से नहीं जोड़ना चाहिए? पहले से

धन्यवाद

उत्तर

5

वहाँ की तरह मैं अब तक पता चला एक सरल कारण हो रहा है: यह सिर्फ CONTENTTYPES पर काम नहीं करता। फ़ील्ड को सीधे जोड़ने की कोशिश करते समय SP2010 मुझे अपवाद भेजता है:

यह कार्यक्षमता फ़ील्ड संग्रहों के लिए अनुपलब्ध है जो किसी सूची से संबद्ध नहीं है।

मुझे बिल्कुल इसकी उम्मीद नहीं थी (न ही स्पेनिश जांच), लेकिन ऐसा लगता है कि यह संभव नहीं है।

5

यह किसी सूची के लिए XML को देखने में मदद कर सकता है।

<FieldRefs> 
    <FieldRef ID="{7662cd2c-f069-4dba-9e35-082cf976e170}" Name="Body" /> 
    <FieldRef ID="{6a09e75b-8d17-4698-94a8-371eda1af1ac}" Name="Expires" /> 
</FieldRefs> 

यहाँ घोषणा सूची के लिए एक्सएमएल है:

<Fields> 
    <Field ID="{7662cd2c-f069-4dba-9e35-082cf976e170}" Type="Note" RichText="TRUE" RichTextMode="FullHtml" IsolateStyles="TRUE" NumLines="15" Name="Body" DisplayName="$Resources:core,camlid2;" Sortable="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Body"> 
    </Field> 
    <Field ID="{6a09e75b-8d17-4698-94a8-371eda1af1ac}" Type="DateTime" Name="Expires" DisplayName="$Resources:core,camlid3;" Format="DateOnly" FromBaseType="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Expires"> 
    </Field> 
</Fields> 

सूचियाँ फील्ड्स है

यहाँ के लिए घोषणा सामग्री प्रकार एक्सएमएल है। सामग्री प्रकार फ़ील्डरिफ है।

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

संबंधित मुद्दे