2015-03-12 2 views
0

У меня проблема с извлечением нескольких списков. Есть ли способ, которым я могу использовать JSOM для выполнения нескольких запросов в разных списках? Спасибо.Как получить несколько списков, используя JSOM в sharepoint?

+0

У меня такая же проблема на этом. Надеюсь, кто-то может нам помочь. – frogcoder

+1

Это требование в моем проекте, я попытался выполнить поиск, но все они через C#. –

ответ

0

Старый вопрос, но я хотел бы опубликовать этот ответ для будущих читателей.

Просто получить все ваши списки затем загрузить их один за другим:

var ctx = SP.ClientContext.get_current(); 

// assuming you're working with the appweb 
var list1 = ctx.get_web().get_lists().getByTitle("list1"); 
var list2 = ctx.get_web().get_lists().getByTitle("list2"); 
var list3 = ctx.get_web().get_lists().getByTitle("list3"); 

ctx.load(list1); 
ctx.load(list2); 
ctx.load(list3); // multiple loads required 

ctx.executeQueryAsync(// one call to the server 
     function(){ 
      // do something with the lists 
     }, 
     function(){ 
      // fail 
     }); 

Также хорошая идея использовать шаблон обещание JQuery, когда работа с JSOM API SharePoint, как и так:

// extending the jQuery namespace for convenience 
// if this is a bad idea performance wise or something 
// I would like to hear from someone :) 
$.extend({  

execQAsync: function(ctx){ 
    var dfd = $.Deferred(); 

    ctx.executeQueryAsync(
     function(sender,args){ 
      dfd.resolve(); 
     }, 
     function(sender, args){ 
      dfd.reject(); 
     }); 

    return dfd.Promise(); 
    } 

}); 

Тогда вы можете заниматься следующим образом:

$.execQAsync(ctx) 
.done(function(){ 
    // do something when the promise resolves 
}) 
.fail(function(){arguments[1].get_message() }); 

См. Optimal/preferred way to call 'SP.ClientContext.executeQueryAsync' in SharePoint

P.S Ярлыки с двойным чехлом и т. Д., Я написал все это в скрипке.

Смежные вопросы