SharePoint 2013 - JavaScript:为什么我的 CAML 查询没有过滤我的列表数据?

SharePoint 2013 - JavaScript: Why isn't my CAML query filtering my list data?

我正在尝试使用 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());
}

CAML 查询中的列类型应为 "Text" 而不是 "Single line of text"。尝试将该行更改为:

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