【问题标题】:SharePoint 2013 - JavaScript: Why isn't my CAML query filtering my list data?SharePoint 2013 - JavaScript:为什么我的 CAML 查询没有过滤我的列表数据?
【发布时间】:2017-02-08 02:27:19
【问题描述】:

我正在尝试使用 JavaScript 在我的 SharePoint 2013 网站上显示列表中的数据。我能够显示列表中的数据,但我也在尝试使用 CAML 查询过滤该数据。我的代码没有显示任何错误,但它显示了列表中的所有项目,而不是我期望的过滤结果列表。请在下面查看我的代码,如果我做错了什么,请告诉我:

function GetListItemsFromSPList(listId) {   
    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    var list = web.get_lists().getById(listId);
    var query =  new SP.CamlQuery();
    query.set_viewXml('<Query><Where><Eq><FieldRef Name=\'Title\' /><Value Type=\'Single line of text\'>CR1</Value></Eq></Where></Query>');
    var queryResults = list.getItems(query);
    context.load(queryResults);
    context.executeQueryAsync(Function.createDelegate(this, function () { onQuerySuccess(queryResults); }),
    Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySuccess(allItems) {
    var listItemInfo = '';
    var ListEnumerator = allItems.getEnumerator();
    while (ListEnumerator.moveNext()) 
    {
        var currentItem = ListEnumerator.get_current();

        listItemInfo += '\nID: ' + currentItem.get_id() + ", Title: " + currentItem.get_item('Title') + ", ContractNo: " + currentItem.get_item('ContractNo');

    }

    alert(listItemInfo.toString());
}

function onQueryFailed(sender, args) {
    alert('Error: ' + args.get_message() + '\n' + args.get_stackTrace());
}

【问题讨论】:

    标签: javascript sharepoint sharepoint-2013 csom


    【解决方案1】:

    CAML 查询中的列类型应为“文本”而不​​是“单行文本”。尝试将该行更改为:

    query.set_viewXml('<View><Query><Where><Eq><FieldRef Name=\'Title\' /><Value Type=\'Text\'>CR1</Value></Eq></Where></Query></View>');
    

    【讨论】:

    • 感谢您的建议,达姆扬。我按照您的建议更改了查询,它仍然返回列表中的所有项目。
    • 请注意,我还添加了围绕 元素的 元素。您是否也尝试添加它?
    • 不,我错过了。添加 View 元素有效。谢谢!
    • 太棒了!很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多