3

Как загрузить элементы из списка SharePoint с помощью его внутреннего имени? Насколько я знаю, что я могу получить его, используя либо Id или Название, как следующее:Получить список SharePoint по внутреннему имени с помощью объектной модели ECMAScript/JavaScript

var clientContext = new SP.ClientContext('/News/'); 
var web = clientContext.get_web(); 
var list = web.get_lists().getById("{1DBA9283-0AFA-4FA1-9BBA-70D8D190971F}"); 
... 

ответ

2

Н.О. CSOM только предлагает методы для запроса списка по его Id или название.

См http://msdn.microsoft.com/en-us/library/ee549620.aspx

SharePoint Список схемы не предлагают InternalNames в данный момент. Смотрите описание Schema http://msdn.microsoft.com/en-us/library/ms415091.aspx

Торстен

+0

Спасибо @ thorsten-hans за ваш ответ, но я уже знаю, что я не существует, что я имел в виду, есть ли кто-нибудь, чтобы выяснить, модифицированный фрагмент кода, чтобы получить его по InternalName? –

2

Его всегда рекомендуется получать списки с помощью ListUrl, которая не изменяется при изменении списка Название.

+0

Можете ли вы привести пример с использованием объектной модели JavaScript? –

1

Я не знаю, если вы имеете в виду это, но внутри моего JavaScript-файла я могу использовать объектную модель, если я сначала объявляю эти три строки.

/// <reference name="MicrosoftAjax.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.core.debug.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.debug.js" />

Это относится код, работает без вызова с {SelectedItem} или вещи:

var items = SP.ListOperation.Selection.getSelectedItems();
var listID = SP.ListOperation.Selection.getSelectedList();

Это нагружает (части) модели объекта клиента, так что я предполагаю, что вы можете Продолжай. Потому что это поддерживается IntelliSense.

Edit2: Другой способ получить и использовать список с JavScript только

var web; 
var context; 
var listTitle = "ListName"; 

function InitiateThisScript(itemId) { 
    context = new SP.ClientContext.get_current(); 
    web = context.get_web(); 
    list = web.get_lists().getByTitle(listTitle); 
    item = list.getItemById(itemId); 
    context.load(web; 
    context.load(list); 
    context.load(item); 
    context.executeQueryAsync(handleItem(item, list)); 
} 

Этот способ требует в вашем Elements.xml, где я определил мои кнопки, которые вы называете его

CommandAction="javascript:InitiateThisScript('{SelectedItemId}','');" /> 

Редактировать 3: Будьте осторожны с использованием этого JavaScript без каких-либо проверок безопасности. Потому что, например, вы отправили это решение на сайт, который позволяет сказать два списка. Сначала вы предложили использовать этот JavaScript и второй. Если у вас есть пользовательские кнопки, которые отображаются в обоих списках, чем вы работаете во втором списке, но с помощью кнопок стрелять в первый список, если это возможно.
Допустим, у вас есть кнопка, которая очищает контент, и у вас в обоих списках есть столбец с названием «title». Если вы находитесь во втором списке и нажимаете кнопку «удалить заголовок», чем в первом списке, заголовок из элемента с тем же itemId будет удален. Во втором списке ничего не происходит.
Это видно из видимости ваших кнопок и не проверяется, если указанный список - это тот, над которым вы работаете.

Shegit

Edit: Прокрутка мои вкладки Я нашел один: Retrieve items from a folder with EcmaScript & COM

+0

Уверен, что три строки сверху дали вам IntelliSense для JS CSOM, но приведенный здесь пример кода будет работать, только если вы находитесь в контексте списка. Например, он будет работать, если в ListWebPart выбран один или несколько списков ListItems. Этот фрагмент не будет работать на простой LayoutsPage. Потому что выбор AFAIK не будет определен. –

+0

Это правильно. Насколько я понимаю, AMgdy, он спрашивает о получении предметов из списка, а не на простой странице. А рядом я использовал этот код в обычном списке, не знаю, обрабатывает ли SharePoint это как ListWebPart. Но, чем каждый список является ListWebPart, и я не вижу своего недоразумения из вопроса. –

+0

Да @ shegit-brahm верьте мне, у меня есть файл js на главной странице и вытаскивает какую-то статью, изображения динамически с использованием объектной модели JavaScript –