Получить значения поля выбора столбца сайта
-
16-10-2019 - |
Вопрос
У меня есть столбец сайта типа, который я связал с типом контента сайта. Я хочу получить значения этого поля выбора для использования в пользовательской веб -части. Должен ли я использовать имя поля, гид или отображение? И как?
Я попробовал это и получил ошибку, не найденную.
SPFieldChoice deptField = SPContext.Current.Fields[new Guid("72D34B8A-549A-43AF-BD25-9A00497EECE8")] as SPFieldChoice;
Решение
Столбец вашего сайта развернута в галерее столбцов сайта на сайте. Итак, сначала вам нужно получить ссылку на сайт (то есть объект SPWEB), затем вы получаете доступ к столбцу сайта, используя коллекцию Fields. Как правило, вы передаете внутреннее имя столбца сайта в качестве параметра.
Когда вы определяете столбец сайта, используя CAML, вы установили следующие атрибуты: name, displayName и staticName. Атрибут имени - внутреннее имя. Он устанавливается при создании столбца сайта и не меняется в течение своего срока службы. Вы можете ссылаться на столбец сайта, используя его идентификатор (как вы делали в своем вопросе), но он делает ваш код нечитаемым.
После того, как у вас есть столбец сайта, вам необходимо составить его в качестве SpfieldChoice, а затем вы можете получить значения выбора из свойства выбора.
var web = SPContext.Current.Web;
var deptField = web.Fields["<internal name">"] as SPFieldChoice;
var values = deptField.Choices;
Другие советы
Похоже, Spcontext.current не относится к элементу списка, который содержит поле. Сначала перейдите к элементу списка/библиотеки и обратитесь к нему, используя коллекцию Fields, как показано здесь:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldcollection.aspx
Чтобы прочитать и записать данные в значении поля MultiChoice, проверьте ссылки на Follwing:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldmultichoicevalue.aspx
http://blog.qumsieh.ca/2008/12/27/workking-with-pfieldmultichoicevalue-saving-and-duading/