Получить URL-адреса семейства сайтов Sharepoint от JQuery - PullRequest
1 голос
/ 30 марта 2012

У меня есть специальное требование, что мне нужно получить список URL-адресов всех семейств сайтов от JQuery. Может ли кто-нибудь помочь с этим

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Боюсь, что вы не можете получить список всех семейств сайтов в чистом JavaScript.Я предполагаю, что вы имели в виду все существующие семейства сайтов в веб-приложении или во всех веб-приложениях.

Если ваша страница (aspx) запускается на сервере SharePoint , вы можете поместить некоторый код на стороне серверана странице «рендеринг» список как JavaScript, а затем просто получить к нему доступ.Это был бы самый простой способ;вероятно, используя Page.ClientScript.RegisterStartupScript .

Если ваша страница (и / или веб-приложение) работает вне фермы SharePoint , вам придется создать и развернутьвеб-служба (asmx) или обработчик (ashx) для фермы SharePoint.Вы, вероятно, ответили бы списком семейства сайтов в виде содержимого JSON и использовали бы его с помощью jQuery на своей странице (AJAX).

Функциональность доступна только в серверном API SharePoint.Вы можете использовать SPWebService.ContentService.WebApplications и application.Sites , чтобы получить список в любом случае:

var json = new StringBuilder();
foreach (var site in SPWebService.ContentService.WebApplications.SelectMany(
                         application => application.Sites))
    using (site) {
        if (json.Length > 0)
            json.Append(',');
        json.Append('"').Append(site.Url).Append('"');
    }
json.Insert(0, "[").Append("]");

--- Ferda

0 голосов
/ 30 марта 2012

Попробуйте приведенный ниже код. Вы можете получить все семейство сайтов, используя объектную модель клиента

function loadWebs() {

   var clientContext = new SP.ClientContext.get_current();

   this.webs = clientContext.get_web().get_webs();

   clientContext.load(this.webs);

   clientContext.executeQueryAsync(Function.createDelegate(this, this.onWebsLoaded), Function.createDelegate(this, this.onQueryFailed));

}

function onQueryFailed(sender, args) {

   alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());

}

function onWebsLoaded(sender, args) {

   for (var i = 0; i < this.webs.get_count(); i++) {

   alert(this.webs.itemAt(i).get_title());

   }    
}
ExecuteOrDelayUntilScriptLoaded(loadWebs, "sp.js");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...