2012-02-21 73 views
1

我使用下面的代码来查询SharePoint 2010的外部列表CAML查询不执行,其中部分

var targetList = web.get_lists().getByTitle('Members'); 
    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml('<view><Query><Where><Eq><FieldRef Name=\'MemberID\'/><Value Type=\'Text\'>mg33</Value></Eq></Where>'+ 
    '</Query>'+ 
    '<ViewFields>'+ 
    '<FieldRef Name=\'MemberID\'/>'+ 
    '<FieldRef Name=\'Name\'/>'+ 
    '<FieldRef Name=\'Email\'/>'+ 
    '<FieldRef Name=\'Department\'/>'+ 
    '<FieldRef Name=\'Title\'/>'+ 
    '<FieldRef Name=\'Manager\'/>'+ 
    '</ViewFields></view>'); 

    this.collListItem = targetList.getItems(camlQuery);   clientContext.load(collListItem,'Include(MemberID,Name,Email,Department,Title,Manager)'); 

但查询检索所有的列表,而不是它匹配的where语句中的单个记录

回答

4

尝试查看此MSDN文章,例如:http://msdn.microsoft.com/en-us/library/hh185007.aspx

并尝试下面的代码。我将xml元素“view”更改为“View”,而.load()方法只有一个参数。第二个没有必要。

var targetList = web.get_lists().getByTitle('Members'); 
var camlQuery = new SP.CamlQuery(); 
camlQuery.set_viewXml(' 
<View> 
    <Query> 
     <Where> 
      <Eq> 
       <FieldRef Name=\'MemberID\'/> 
       <Value Type=\'Text\'>mg33</Value> 
      </Eq> 
     </Where>'+ 
    '</Query>'+ 
    '<ViewFields>'+ 
     '<FieldRef Name=\'MemberID\'/>'+ 
     '<FieldRef Name=\'Name\'/>'+ 
     '<FieldRef Name=\'Email\'/>'+ 
     '<FieldRef Name=\'Department\'/>'+ 
     '<FieldRef Name=\'Title\'/>'+ 
     '<FieldRef Name=\'Manager\'/>'+ 
    '</ViewFields> 
</View>'); 
this.collListItem = targetList.getItems(camlQuery); 
clientContext.load(collListItem);