zoukankan      html  css  js  c++  java
  • 数据量太大时,如何实现分页查询-JSOM

    利用Jsom实现分页查询:
    
    var data=[];
    function getItems()
    
    {
    
    licenceContext=new SP.ClientContext(); //var licenceContext =SP.ClientContext.get_current();
    
    licenceWeb=licenceContext.get_web();
    licenceList=licenceWeb.get_lists().getByTitle("listName"); 
    query_licence=new SP.CamlQuery();
    
    //需要哪些字段就将这些字段放到查询caml中,然后遍历时获取字段进行判断
    
    var queryTemp='<View><ViewFields>'
    +'<FieldRef Name="column1"/>'
    +'<FieldRef Name="column2"/>'
    +'<FieldRef Name="column3"/>'
    +'</ViewFields><RowLimit>1000</RowLimit></View>';
    
    //有时也会使用下列写法,但不一定有效
    
     
    
    /*var queryTemp = "<View>"
    + "<Query><Where>"
    + "<And>"
    + "<IsNotNull><FieldRef Name='column1'/></IsNotNull>"
    + "<And>"
    + "<Eq><FieldRef Name='column2'/><Value Type='Text'>A</Value></Eq>"
    + "<Eq><FieldRef Name='column3'/><Value Type='Text'>Y</Value></Eq>"
    + "</And>"
    + "</And>"
    + "</Where><OrderBy><FieldRef Name='column1' Ascending='false'/></OrderBy></Query>"
    
    + "<ViewFields>"
    + "<FieldRef Name='column1'/>"
    + "<FieldRef Name='column2'/>"
    + "<FieldRef Name='Status'/>"
    + "<FieldRef Name='column3'/>"
    + "<FieldRef Name='column4'/>"
    + "</ViewFields>"
    + "<RowLimit>5000</RowLimit>"
    +"</View>";*/
    
    query_licence.set_viewXml(queryTemp); 
    licenceCollListItem=licenceList.getItems(query_licence);
    licenceContext.load(licenceCollListItem);
    licenceContext.executeQueryAsync(Function.createDelegate(this,onQuerySucceeded),Function.createDelegate(this,onQueryFailed));
    }
    
    function onQuerySucceeded(){ 
    
    var listEnumerator=licenceCollListItem.getEnumerator();
    while(listEnumerator.moveNext())
    {
    var testObj={};
    var currentItem=listEnumerator.get_current();
    
    var column1=currentItem.get_item('column1')||"";
    var column2=currentItem.get_item("column2")||"";
    var column3=currentItem.get_item("column23")||"";
    testObj.column1=column1;
    testObj.column2=column2;
    testObj.column3=column3;
    data.push(testObj);
    }
    
    var position = licenceCollListItem.get_listItemCollectionPosition();
    if (position != null) 
    {
    query_licence.set_listItemCollectionPosition(position);
    licenceCollListItem = licenceList.getItems(query_licence); 
    licenceContext.load(licenceCollListItem); 
    licenceContext.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this,onQueryFailed));
    }
    
    else
    {
      var SkuObjColl=[];
      SkuObjColl = data.where(function (z) { return z.column1 == "条件1"&& z.column2 == "条件2" });//linq条件筛选
    }
    SkuObjColl.forEach(function(result){//数据处理});
    }
    
    function onQueryFailed(sender, args) {
    console.log('Request failed. 
    Error: ' + args.get_message() + '
    StackTrace: ' + args.get_stackTrace());
    }
    
     
  • 相关阅读:
    实践测试登录功能的思路与原理解析(基于 Spring Security)
    测试人如何突破职业瓶颈,实现指数级成长?| 测试大咖在线沙龙
    往期优秀文章
    webRTC初接触,网页获取媒体音视频
    Guava Cache源码浅析
    打着维护用户利益旗号的厮杀
    HDFS资源管理器源码发布
    Ext复制grid里某一列的值
    不引入外部文件也可以显示图片
    页面嵌入Windows Media Player需要注意的
  • 原文地址:https://www.cnblogs.com/learning-life/p/10405256.html
Copyright © 2011-2022 走看看