caml查询中的#符号问题

时间:2017-07-13 15:32:08

标签: sql sharepoint sharepoint-2013 caml

我已创建了一个用于在sharepoint应用程序中获取数据的caml查询。我在where子句中使用了contains。我在执行此查询时没有获取数据,因为"#"预设在输入值的开头(#userdetails)。如何解决这个问题。请帮忙。

查询:

<Where>
    <Contains>
        <FieldRef Name='FileRef' />
        <Value Type='Text'>#userdetails</Value>
    </Contains>
</Where>

1 个答案:

答案 0 :(得分:1)

当caml查询中的输入值为#时,我不知道为什么您的代码无效。

但请参阅以下适用于我的代码。

function retrieveListItems() {

    var clientContext = new SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('TestList');

    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('<View><Query><Where><Contains><FieldRef Name="Title" /><Value Type="Text">#rohit</Value></Contains></Where></Query></View>');
    this.collListItem = oList.getItems(camlQuery);

    clientContext.load(collListItem);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

}

function onQuerySucceeded(sender, args) {

    var listItemInfo = '';

    var listItemEnumerator = collListItem.getEnumerator();
    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        alert(oListItem.get_item('Title'));
    }

    alert(listItemInfo.toString());
}

function onQueryFailed(sender, args) {
    debugger;
}