<nativehr> 0x80070057 </nativehr> <nativestack> </nativestack>在Sharepoint列表中创建Choice字段时

时间:2012-02-17 06:41:05

标签: c# .net sharepoint

我以编程方式在Web方法中创建sharepoint 2010网站。创建站点时 - 它会触发“功能激活”事件接收器。在此事件接收器中,我在网站上创建列表并向其添加字段。

我正在创建的一个字段是选择字段(下拉列表)。我为此控件添加了几个选项,但发现在创建站点时,如果我下拉该字段,则列表中没有选项。我通过网络研究意识到,我需要调用我选择字段的更新方法。我一做到这一点,网站的创建引发了一个例外,其描述如下:     80070057 不是很有帮助。

如果我注释掉了选择字段的更新方法,则网站再次创建没有问题,但下拉列表中没有选项。

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));

1 个答案:

答案 0 :(得分:1)

尝试在调用字段的更新方法

之前更新列表