javascript - 使用 Javascript 从 Sharepoint 列表的 ListView 中检索项目

标签 javascript sharepoint-2013 sharepoint-designer

这是我的代码:\

这里 pranav_list 是列表名称,Main 是该列表的 View 。

<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 不支持从 View 中检索列表项,您可以考虑以下方法:

  • 检索 View 的 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
   );
}

使用

以下示例演示如何从任务列表中的所有任务 View 检索列表项:

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 - 使用 Javascript 从 Sharepoint 列表的 ListView 中检索项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28764636/

相关文章:

c# - 以编程方式将 > 5 MB 的文件上传到 Sharepoint 2013

javascript - 如何获取服务器的当前日期时间

sharepoint-2010 - 数据连接返回的数据量超出了服务器管理员配置的最大限制

javascript - jQuery 代码第二次不显示表单

javascript - 从后端(Java/Jersey/REST)发送数据到前端(Angular JS)

javascript - 从 Kendo 中的 columns.filterable.cell.template 函数访问列字段名称

javascript - 如何在 Sharepoint 2013 博客 (Office365) 上使用 SyntaxHighlighter?

Javascript自动表单提交

c# - SharePoint 2013 - 如何以编程方式设置搜索结果 url?

email - SharePoint 向字段中指定的用户发送电子邮件