javascript - 使用 Javascript 和 <Contains> 进行 CAML 查询

标签 javascript sharepoint caml

我们必须在 SharePoint 客户端工作,因此我使用 Javascript,而不是 C#。 我想像这样使用“包含”进行查询

function onRequestSucceeded() {
    myList = website.get_lists().getByTitle("Prüfberichte");
    var query = '<Where><Contains><FieldRef Name="Name_x0020_Lieferant_x0020__x0028_Supplier_x0020_name_x0029_"/><Value Type="Text">Hans</Value></Contains></Where>';
    camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml(query);
    items = myList.getItems(camlQuery);
    clientContext.load(items, 'Include(Id, DisplayName, HasUniqueRoleAssignments)');
    clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}

不幸的是,这会返回整个列表,而不是包含“Hans”的单个项目。

这是一个“包含”特定的问题,“Eq”工作正常。

我们将非常感谢所有帮助!

最佳答案

SharePoint JSOM API SP.CamlQuery.viewXml property接受具有以下结构的 XML 架构:

<View>
    <Query>
          <Where>
               ...
          <Where> 
   </Query>
</View> 

例如:

var query=new SP.CamlQuery();
query.set_viewXml('<View Scope="RecursiveAll"><Query><Where><Eq><FieldRef Name="FSObjType" /><Value Type="Integer">1</Value></Eq></Where></Query></View>');

当提供无效 XML 架构时(如您的情况),查询将被忽略并返回所有项目(标准行为),很可能这就是您的情况发生的原因。

关于javascript - 使用 Javascript 和 <Contains> 进行 CAML 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262921/

相关文章:

c# - 为什么 HttpContext.Current.Profile 为 NULL?它如何获得值(value)?

javascript - 使用 ng-grid 单元格值中的值在 SharePoint 模式中打开链接

c# - 如何使用 CamlQuery 按名称获取共享点文件夹

c# - bool 列的 CAML 查询不起作用

javascript - 如何通过单击另一个元素来显示隐藏的元素

javascript - Fabric js : SVG cannot import from url

javascript 假期验证

javascript - 小数值的固定条件

.net - CAML 查询比较 DateTime 与 Eq

sharepoint - 莫斯 2007 : BDC permisson problem - no BDC application is listed in the web part's configuration menu