c# - 在 SharePoint Web 服务中使用 ViewFields 返回特定列

标签 c# asp.net web-services sharepoint-2010 caml

我正在使用 CAML 通过 Web 服务查询 SharePoint 列表并输出到 C#/ASP.Net 中的 GridView。我遇到的问题是显示的列多于我在查询的“ViewFields”部分中指定的列(例如,如下所示)。

viewFields.InnerXml = "<ViewFields>" +
                      "<FieldRef Name="Col1" />" +
                      "<FieldRef Name="Col2" />" +
                      "<FieldRef Name="Col3" />" +
                      "<FieldRef Name="Col4" />" +
                      "</ViewFields>";

我尝试在“QueryOptions”中设置为 false。

谁能提供解决这个问题的方法,以便只返回指定的列?

最佳答案

这是为了帮助那些正在寻找这个问题答案的人,我们发现最有效的解决方案:

我们从这里获取了节点的想法:How to Return Only Certain Columns of a List When using the SharePoint Web Service?

然后我们完成了将我们想要的字段提取到数据表中的过程。首先,我们为字段创建适当数量的列。然后通过子节点提取所有行数据。为我们请求的每个字段执行此操作。

  var myData = new DataTable();

        foreach (string field in fields)
        {
            myData.Columns.Add(field);
        }

        foreach (XmlNode node in nodeListItems)
        {
            // rs = RowSet
            if (node.Name == "rs:data")
            {
                for (int i = 0; i < node.ChildNodes.Count; i++)
                {
                    if (node.ChildNodes[i].Name == "z:row")
                    {
                        DataRow row = myData.NewRow();
                        foreach (string field in fields)
                        {
                            var xmlAttributeCollection = node.ChildNodes[i].Attributes;
                            if (xmlAttributeCollection != null)
                                row[field] = xmlAttributeCollection["ows_" + field].Value;
                        }
                        myData.Rows.Add(row);
                    }
                }
            }
        }
        return myData;

关于c# - 在 SharePoint Web 服务中使用 ViewFields 返回特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212432/

相关文章:

c# - 生成文件后如何关闭启动消息?

ios - NSURLConnection,web 服务在后台 ios 中不工作

c# - 如何从存储过程填充数据表

java - 从 spring webservice 执行进程并监控?

javascript - 使用 $.ajax POST 将查询字符串参数传递给 WebService

c# - OleDb - 关键字 'DEFAULT' 附近的语法不正确

c# - 本地 AppFabric 和本地 Memcache - 严格来说性能

c# - wince 6.0 c# 中的全屏应用程序

.net - 从网页轮询数据库? - ASP.NET

asp.net - BundleReference 和缓存