使用ObjectModel从SharePoint字段选择列中检索所有项目

时间:2010-01-21 12:45:45

标签: c# sharepoint caml

我知道已经询问了similar question,但是使用Sharepoint对象模型检索了Choice字段的所有项目。我没有对象模型可供我使用。我想用CAML或其他东西来做这件事。我无法弄清楚CAML查询以获取选择字段的所有项目。

任何指向正确方向的人都会非常感激。

问候。

2 个答案:

答案 0 :(得分:1)

您可以使用网络服务电话吗?该主题解释了从Web服务中读取多项选择:http://social.msdn.microsoft.com/Forums/en/sharepointdevelopment/thread/04a00936-7102-4ddc-aa7d-0be7e14e7692 这篇后续帖子也许有用:http://mysharepointwork.blogspot.com/2009/10/sharepoint-web-services-get-choice.html

答案 1 :(得分:1)

实际上有另一种使用Xelements获取值的方法

            using (var service = new SharePoint.Services.ListsSoapClient())
            {
                service.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

                var listName = "MyList";

                var xelement = service.GetList(listName);
                var fieldName = "Category"; //My Field name
                XNamespace ns = "http://schemas.microsoft.com/sharepoint/soap/";

                var selectedField = xelement.Descendants(ns + "Fields").Elements().Where(x => x.Attribute("Name").Value == fieldName).FirstOrDefault();
                if (selectedField != null)
                {
                    var choices = selectedField.Elements(ns + "CHOICES").Elements().Where(x => x.Name == ns + "CHOICE").Select(x => x.Value).ToList();
                    //Do something with choices
                }
            }