2012-02-21 70 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);