3
我正在以編程方式在Web方法中創建SharePoint 2010站點。當網站被創建時 - 它會觸發一個「功能激活」事件接收器。在這個事件接收器中,我正在網站上創建列表並向它們添加字段。<nativehr> 0x80070057</nativehr><nativestack></ nativestack>在Sharepoint列表中創建「選擇」字段時
我創建的一個字段是選擇字段(下拉列表)。我爲這個控件增加了幾個選擇選項,但是發現當網站被創建時,如果我下拉字段,那麼列表中沒有選項。我通過網絡研究意識到,我需要調用我選擇的更新方法。只要我這樣做,該網站的創建引發了一個例外與下面的描述: 0x80070057 不是很有幫助。
如果我註釋掉選擇字段的更新方法,則該站點再次創建沒有問題,但在下拉列表中沒有選項。
SPFieldChoice fldTransmittalStatus =
(SPFieldChoice)newList.Fields.CreateNewField(Microsoft.SharePoint.SPFieldType.Choice.ToString(), Constants.FIELD_TRANSMITTAL_STATUS);
newList.Fields.Add(fldTransmittalStatus);
fldTransmittalStatus.EditFormat = SPChoiceFormatType.Dropdown;
fldTransmittalStatus.Choices.Add("Sent");
fldTransmittalStatus.Choices.Add("Downloaded");
fldTransmittalStatus.Choices.Add("Received");
fldTransmittalStatus.Choices.Add("Resent");
fldTransmittalStatus.Choices.Add("Cancelled");
fldTransmittalStatus.Update(); // when present, this line causes the site creation to fail
. . . .
. . . .
newList.Update();
我還在默認視圖中包含此字段。
SPView defaultView = newList.DefaultView;
defaultView.ViewFields.Add(newList.Fields.GetField(Constants.FIELD_TRANSMITTAL_STATUS));
三江源的更新方法之前更新列表。這真的有幫助。 – tassieboy 2012-02-20 00:53:25
原來,我不僅需要在更新列表之後添加選項選項,而且還需要將對象引用添加到列表中。 SPFieldChoice fldTransmittalStatus =(SPFieldChoice)newList.Fields [Constants.FIELD_TRANSMITTAL_STATUS]; – tassieboy 2012-02-20 00:54:25