【问题标题】:# 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>
【问题讨论】:
标签:
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;
}