Caml Query не выполняет часть where - PullRequest
1 голос
/ 21 февраля 2012

Я использую приведенный ниже код для запроса внешнего списка 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 Ответ

4 голосов
/ 21 февраля 2012

Попробуйте взглянуть на эту статью 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);
...