使用 Javascript 从 Sharepoint 列表的列表视图中检索项目 [英] Retrieve Items from a List View of a Sharepoint List using Javascript

查看:45
本文介绍了使用 Javascript 从 Sharepoint 列表的列表视图中检索项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码:\

这里 pranav_list 是列表名称,Main 是该列表的视图.

Here pranav_list is list name and Main is view of that list.

<script type="text/javascript">
    function retrieveListViewItems(){
    alert('start');
    var cc = SP.ClientContext.get_current();
    var alllist = cc.get_web().get_lists().getByTitle('pranav_list');
    var view = alllist.get_views().getByTitle('Main');
    var caml = new SP.CamlQuery();
    caml.set_viewXml('<View><Query><Where><Leq>' + 
                '<FieldRef Name=\'ID\'/><Value Type=\'Number\'>100</Value>' + 
                '</Leq></Where></Query><RowLimit>8</RowLimit></View>'); 

    this.list = view.getItems(caml);
    cc.load(list);
   cc.executeQueryAsync(Function.createDelegate(this,this.QuerySucceeded5),Function.createDelegate(this,this.onQueryFailed));
    }
    function QuerySucceeded5(){
    var listiteminfo='';

    var listItemEnumerator = list.getEnumerator();
    while(listItemEnumerator.moveNext())
    {
      var listitem = listItemEnumerator.get_current();

     listiteminfo += '\nID:'+ listitem.get_id() +
                      '\nFirstName:' + listitem.get_item('Title') +
                      '\nLastName:' + listitem.get_item('LN') +
                      '\nAge:' + listitem.get_item('Age') +
                      '\n City:' + listitem.get_item('City');

    // alert(listiteminfo.toString());       
    }
    alert(listiteminfo.toString());
            }
    function onQueryFailed(){
    alert("Failed");
    }
    </script>

帮助.!!

推荐答案

由于 JSOM API 不支持从视图中检索列表项,您可以考虑以下方法:

Since JSOM API does not support to retrieve list items from a View you could consider the following approach:

  • 检索视图的 CAML 查询
  • 将该查询提供给 SP.List.getItems() 方法

示例

function getItemsFromView(listTitle, viewTitle,success,error)
{
    var ctx = SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle(listTitle);
    var view = list.get_views().getByTitle(viewTitle);
    ctx.load(view,'ViewQuery');
    ctx.executeQueryAsync(
        function() {
            var viewQry = "<View><Query>" + view.get_viewQuery() + "</Query></View>";
            getItems(listTitle,viewQry,success,error);
        },
        error);
}

function getItems(listTitle, queryText,success,error) 
{
    var ctx = SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle(listTitle);
    var query = new SP.CamlQuery();
    query.set_viewXml(queryText);
    var items = list.getItems(query);
    ctx.load(items);
    ctx.executeQueryAsync(
        function() {
            success(items);
        },
        error
   );
}

用法

以下示例演示了如何从 Tasks 列表中的 All Tasks 视图中检索列表项:

The following example demonstrates how to retrieve List Items from All Tasks view in Tasks list:

getItemsFromView("Tasks", "All Tasks",
 function(items){
    for(var i = 0; i < items.get_count(); i++){
        var item = items.get_item(i);
        console.log(item.get_item('Title'));
    }
 },
 function(sender,args){ 
    console.log(args.get_message())
 });

这篇关于使用 Javascript 从 Sharepoint 列表的列表视图中检索项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆