Object 如何从Sharepoint 2010客户端对象模型中读取选择字段
我正在使用Sharepoint 2010对象模型。我正在尝试检索自定义列表的内容。除了当我试图检索一个选择字段时,一切都正常 当我试图检索选择字段时,我得到一个PropertyOrFieldNotInitializedException异常 以下是我正在使用的代码:Object 如何从Sharepoint 2010客户端对象模型中读取选择字段,object,model,sharepoint-2010,choice,Object,Model,Sharepoint 2010,Choice,我正在使用Sharepoint 2010对象模型。我正在尝试检索自定义列表的内容。除了当我试图检索一个选择字段时,一切都正常 当我试图检索选择字段时,我得到一个PropertyOrFieldNotInitializedException异常 以下是我正在使用的代码: ClientContext clientContext = new ClientContext("https://mysite"); clientContext.FormsAuthen
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"]);
}
ClientContext ClientContext=newclientcontext(“https://mysite");
clientContext.FormsAuthenticationLoginInfo=新的FormsAuthenticationLoginInfo(“aaa”,bbb”);
clientContext.AuthenticationMode=ClientAuthenticationMode.FormsAuthentication;
List List=clientContext.Web.Lists.GetByTitle(“mylist”);
CamlQuery CamlQuery=新的CamlQuery();
camlQuery.ViewXml=“”;
ListItemCollection listItems=list.GetItems(camlQuery);
加载(listItems);
clientContext.ExecuteQuery();
foreach(listItems中的ListItem ListItem)
{
listBoxControl1.Items.Add(listItem[“已分配的公司]);
}
谢谢你的帮助
Eric读取代码中的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);
}
}
使用
microsoft.sharepoint.client命名空间
var list = clientContext.Web.Lists.GetByTitle(listName);
clientContext.ExecuteQuery();
clientContext.Load(list.Fields, fields => fields.Include(field => field.Title));
clientContext.ExecuteQuery();
foreach (var field in list.Fields)
{
if (field.Title == "YourChoiceFieldName")
{
clientContext.Load(field);
clientContext.ExecuteQuery();
return ((FieldChoice) field).Choices;
}
}