Я программно создаю сайт sharepoint 2010 с помощью веб-метода. Когда сайт создан - он запускает приемник событий «функция активирована». В этом приемнике событий я создаю списки на сайте и добавляю к ним поля.
Одним из полей, которые я создаю, является поле выбора (раскрывающийся список). Я добавляю несколько вариантов выбора к этому элементу управления, но обнаруживаю, что при создании сайта, если я выпадаю из поля, в списке нет параметров. Благодаря веб-исследованиям я понял, что мне нужно вызвать метод обновления в выбранной мной области. Как только я это сделал, при создании сайта возникло исключение со следующим описанием:
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));