Запрос конструктора Caml не работает в коде

у меня проблемы здесь! У меня есть сайт sharepoint, на котором есть список фотогалереи (PhotoGallery). Мне нужно запросить этот список, вернуть изображения из указанной галереи (папки). Я разработал веб-часть с меню выбора, которое загружает все галереи (папки) внутри этой фотогалереи. Затем, когда я выбираю конкретную галерею (папку), появляется модальное окно с изображениями из этой галереи (папки). Но я не могу вернуть правильные результаты. Запрос ничего не возвращает, кроме списка всех галерей (папок) списка. Изображения не возвращаются. Но самое забавное в том, что когда я останавливаю браузер и копирую запрос, уже содержащий значение папки, и вставляю его в Caml Query Helper, запрос работает нормально! Мой запрос:

var camlQ = new SP.CamlQuery();

camlQ.set_viewXml("<Where><And><Eq><FieldRef Name=\"ContentType\" /><Value Type=\"Text\">Image</Value></Eq><Contains><FieldRef Name=\"FileRef\" /><Value Type=\"Text\">" + VALUE_FROM_OPTION + "</Value></Contains></And></Where>");

var clientCtx = new SP.ClientContext.get_current();
this.results = clientCtx.get_web().get_lists().getByTitle("PHOTO_GALLERY_NAME").getItems(camlQ);

clientCtx.load(this.results);

clientCtx.executeQueryAsync(Function.createDelegate(this, function(sender, args){

    // SOME CODE

}), Function.createDelegate(this, function(sender, args){

    // SOME CODE

}));

person mnatan.brito    schedule 31.05.2014    source источник


Ответы (1)


Ваш запрос CAML кажется правильным, но метод SP.CamlQuery.set_view принимает xml, где корневым элементом является View (также требуется элемент Query).

Итак, оберните блок 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>');
person Vadim Gremyachev    schedule 31.05.2014