當我搜索有關使用代碼(C#)我使用SPFieldLink鏈接到該網站的現有場始終找不到實例創建CONTENTTYPES並通過爲什麼要在向contenttype添加字段時使用fieldLink?
contentType.FieldLinks.Add()
添加此文檔,但也有添加一個方法字段直接。有沒有一個很好的理由,我不應該簡單地添加字段使用
contentType.Fields.Add(SpField())
?!?
在此先感謝
當我搜索有關使用代碼(C#)我使用SPFieldLink鏈接到該網站的現有場始終找不到實例創建CONTENTTYPES並通過爲什麼要在向contenttype添加字段時使用fieldLink?
contentType.FieldLinks.Add()
添加此文檔,但也有添加一個方法字段直接。有沒有一個很好的理由,我不應該簡單地添加字段使用
contentType.Fields.Add(SpField())
?!?
在此先感謝
似乎有像我發現現在原因很簡單:它只是不上CONTENTTYPES工作。當試圖直接添加字段時,SP2010會向我發送例外情況:
此功能不適用於與列表無關的字段集合。
我絕對沒有想到這(西班牙宗教裁判所),但它似乎並不可能。
這可能有助於查看XML列表。
下面是公告內容類型的XML:
<FieldRefs>
<FieldRef ID="{7662cd2c-f069-4dba-9e35-082cf976e170}" Name="Body" />
<FieldRef ID="{6a09e75b-8d17-4698-94a8-371eda1af1ac}" Name="Expires" />
</FieldRefs>
下面是公告名單的XML:
<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>
列表有字段。內容類型具有FieldRefs。
我不確定這是否完全正確,但我總是將它描述爲類和接口或抽象類之間的區別。內容類型是列表的定義,但是與界面一樣,它不包含任何數據或功能。由於字段包含數據和功能,內容類型(從列表中解除關聯)沒有字段,因此它們具有FieldRefs。 YMMV - 但這總能幫助我保持直線。