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());
    }
    
     
  • 相关阅读:
    Android JNI之C/C++层调用JAVA
    Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
    Android 开创java世界(JNI Invocation API)
    Android JNI c/c++调用java 无需新建虚拟机
    cmake:善用find_package()提高效率暨查找JNI支持
    如何解决用CMake未定义引用`JNI_CreateJavaVM'?
    [Linker error] undefined reference to `_imp__JNI_CreateJavaVM@12'
    Android jni c/c++线程通过CallVoidMethod调用java函数出现奔溃问题
    【故障公告】部署在 k8s 上的博客后台昨天与今天在访问高峰多次出现 502团队
    上周热点回顾(3.30-4.5)团队
  • 原文地址:https://www.cnblogs.com/learning-life/p/10405256.html
Copyright © 2011-2022 走看看