none
SharePoint Webservice Lists分页问题 RRS feed

  • 问题

  • 在SP 提供的web service 中的 Lists.GetListItems Method 可以获取指定列表的项,但是这个只返回列表的第一页。
    在msdn上我也找到关于这个的说明 http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx
    在Remark部分也说明了返回值中 includes a ListItemCollectionPositionNext attribute inside the rs:Data element that contains the information to support paging,
    但是这个怎么用啊?我是可以通过判断存在这个节点来判断还没有结束,但是如何获取下一页数据呢?

    XmlNode xnCodeItems = spListsWS.GetListItems(Config.ListName, "", null, null, "", null, "");
              <strong>if (xnCodeItems.InnerXml.IndexOf("ListItemCollectionPositionNext") > 0)
              {
    
              }</strong>
              StringReader sr = new StringReader(xnCodeItems.OuterXml);
              XmlTextReader tr = new XmlTextReader(sr);
              DataSet ds = new DataSet("list");
              ds.ReadXml(tr);
              int listCount = 0;
    
              if (ds.Tables.Count > 1){
                listCount = ds.Tables[1].Rows.Count;
                
                for (int i = 0; i < listCount; i++)
                {
                  DataRow row = ds.Tables[1].Rows[i];
                }
    
              }
    
    在代码里面的 if 条件里怎么获取下一页呢?
    2010年8月31日 10:08

答案

  • 在GetListItems的倒数第二个参数是QueryOptions,这里面可以设置分页信息,这个Xml节点设置后大概是这个样子的:

    <QueryOptions>

        <Paging>上一页的paging info</Paging>

    </QueryOptions>

    详细可以看一下SDK中Web Service的参考

    2010年9月15日 8:45