Как прочитать поле выбора из клиентской объектной модели Sharepoint 2010

Я использую объектную модель Sharepoint 2010. Я пытаюсь получить содержимое пользовательского списка. Все работает нормально, за исключением случаев, когда я пытаюсь получить поле выбора.

Когда я пытаюсь получить поле выбора, я получаю исключение PropertyOrFieldNotInitializedException...

Вот код, который я использую:

            ClientContext clientContext = new ClientContext("https://mysite");
            clientContext.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo("aaa", bbb");
            clientContext.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;

            List list = clientContext.Web.Lists.GetByTitle("mylist");
            CamlQuery camlQuery = new CamlQuery();
            camlQuery.ViewXml = "<View/>";

            ListItemCollection listItems = list.GetItems(camlQuery);
            clientContext.Load(listItems);
            clientContext.ExecuteQuery();

            foreach (ListItem listItem in listItems)
            {

                listBoxControl1.Items.Add(listItem["Assigned_x0020_Company"]);

            }

Спасибо за помощь!

Эрик


person Eric    schedule 12.06.2010    source источник


Ответы (2)


Когда вы читаете ChoiceField в коде, он возвращает строковый массив выбранных вариантов. Например, если вы ввели в поле выбора столбца при его создании: «Компания 1», «Компания 2», «Компания 3», если пользователь выбрал вариант 1 и 2, то возвращаемый массив в коде будет содержать «Компания 1». " и "Компания 2". Вы должны изменить код на следующий:

         foreach (ListItem listItem in listItems)
        {
            string[] values = (string[])listItem["Assigned_x0020_Company"];
            foreach(string s in values)
            {
               listBoxControl1.Items.Add(s);
             }

        }
person Shayan    schedule 08.02.2012

person    schedule
comment
отлично работал у меня, используя microsoft.sharepoint.client namespace - person jonathana; 22.12.2017