2013-07-31 2 views
1

Вопрос только что:Запросить список SharePoint Programatically

Каков наилучший способ взаимодействия с SharePoint с кодом? Попытка выяснить правильную область, преследующую, не теряя времени. C#? JavaScript?

В настоящее время я просто пытаюсь создать веб-часть, которая представляет собой список SharePoint. Driven ... в основном будет создана панель навигации, а имена/ссылки в этой навигационной панели будут отображаться, однако у меня есть список SharePoint сконфигурировано.

+0

Вы можете использовать либо - все, что лучше подходит вашему делу. Поскольку нет критериев, которые «лучше» для вас, на этот вопрос нельзя ответить, поскольку он стоит сейчас. –

ответ

1

Вы можете использовать C# для своей веб-страницы. Создайте пустой проект, затем добавьте веб-страницу (не визуальный веб-сайт) в проект. Используйте объектную модель C# для запроса объекта SPList, затем выполните цикл foreach, чтобы выплескивать значения в вашу навигационную панель.

Боль с C# возникает, когда вам нужно обновить свою функцию с другим номером версии для решения. То есть, если вы не прекратите процесс обновления функций. Пробный экземпляр веб-страницы версии застрял в зонах WP любого ASPX, в котором они хранятся. Я сохраняю свои решения в версии 1.0, а затем обратите внимание на номер версии сборки в описании функции, которая отображается в списке функций в настройках сайта.

Вы можете использовать JavaScript для своей функции веб-части. Создайте пустой проект, затем добавьте веб-страницу (не визуальный веб-сайт) в проект. Вызовите веб-службу для getitems в определенном списке навигации. Visual studio создаст сильно названный класс для сайта SP, в котором живет этот список, который хранит определение всех списков на этом сайте. Если ваш навигационный список изменится, обновите веб-службу и обновите этот сильно названный класс.

Когда ваша веб-часть запускается, веб-служба будет запускаться как пользователь, который вошел в систему. Поэтому либо убедитесь, что у всех посетителей есть права на просмотр, либо сделать учетную запись службы AD для вызова веб-службы. Как только ваш Javascript вернет XML, используйте парсер, подобный Lync to XML, чтобы получить данные и выплевывать HTML в панель навигации.

Это больше о удобном предпочтении, чем лучше. Если вы используете SharePoint 2013, сделайте приложение SP вместо функции фермы. Затем вы можете использовать только JavaScript и веб-службы.

+1

Хорошая информация. Благодаря! – mwilson

1

Вы можете использовать список веб-сервисов lists.asmx и javascript, ниже код taht, который я использую для запроса списков SharePoint.

var url = document.URL; 
if(url.indexOf("https://") != -1) 
{ 
    var urllink = document.location.href.replace("https://",""); 
    var prefix = "https://"; 
} 
else 
{ 
    var urllink = document.location.href.replace("http://",""); 
    var prefix = "http://"; 
} 
var link = (urllink.split("/"))[0]; 

$(document).ready(function() { 
    var soapEnv = 
     "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \ 
      <soapenv:Body> \ 
       <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \ 
        <listName>Web Pages</listName> \ 
        <viewFields> \ 
         <ViewFields> \ 
          <FieldRef Name='Title' /> \ 
         </ViewFields> \ 
        </viewFields> \ 
       </GetListItems> \ 
      </soapenv:Body> \ 
     </soapenv:Envelope>"; 

    $.ajax({ 
     url: prefix+link+"/_vti_bin/lists.asmx", 
     type: "POST", 
     dataType: "xml", 
     data: soapEnv, 
     complete: processResult, 
     contentType: "text/xml; charset=\"utf-8\"" 
    }); 
}); 

var names = new Array(); 
var href = new Array(); 
var iterator; 

function processResult(xData, status) { 
    $(xData.responseXML).find("z\\:row, row").each(function() { 

    names.push($(this).attr('ows_Title')); 
    href.push($(this).attr('ows_FileRef')); 

    }); 
} 
0

У меня нет доступа к серверной части Sharepoint (IT ограничение), так что я только использовать разрешено входить JavaScript для такого рода задач, и он прекрасно работает с веб-службами Sharepoint.

Я создал API JavaScript, который, я думаю, очень полезный и простой в использовании: SharepointPlus

В противном случае есть некоторые альтернативы, как популярный SPServices.

Поэтому я бы сказал, что это зависит от ваших потребностей, ограничений, навыков и сложности того, что вы пытаетесь сделать в конце.

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