【问题标题】:# symbol issue in caml query# caml 查询中的符号问题
【发布时间】:2017-07-14 17:17:50
【问题描述】:

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

查询:

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

【问题讨论】:

  • 你能粘贴你正在使用的 CAML 吗?
  • #userdetails
  • userdetails 是哪个共享点类型列?

标签: sql sharepoint sharepoint-2013 caml


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多