Caml Query不执行where部分

时间:2012-02-21 11:35:09

标签: javascript sharepoint-2010 caml

我使用以下代码查询SharePoint 2010外部列表

    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语句匹配的单个记录

1 个答案:

答案 0 :(得分: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);