2016-08-05 6 views
0

Я пытаюсь получить элементы списка Заголовок, чтобы вставить его в раздел div на моей домашней странице SharePoint, я нашел этот код, который извлекает URL-адрес элемента.Как получить заголовок списка элементов с помощью JavaScript

все работает отлично.

var clientContext = SP.ClientContext.get_current(); 
var list = clientContext.get_web().get_lists().getByTitle("Artdesk alertes"); 

var caml = new SP.CamlQuery(); 
caml.set_viewXml("<View />"); 

var listItemCollection = list.getItems(caml); 

clientContext.load(list, "DefaultDisplayFormUrl"); 
clientContext.load(listItemCollection); 

clientContext.executeQueryAsync(function() { 

    for(var i in listItemCollection.get_data()) { 

     console.log("DispFormRelativeUrl: " + list.get_defaultDisplayFormUrl() + "?ID=" +listItemCollection.get_data()[i].get_id()); 
    } 

}, function(sender, args) { 
    window.console && console.log(args.get_message()); 
}); 

Как получить заголовок элемента списка с использованием объектной модели JavaScript?

ответ

1
clientContext.load(list, "DefaultDisplayFormUrl"); 

Вы запрашиваете свойство "DefaultDisplayFormUrl" здесь. Вы можете указать свойство Title или просто удалить запрос определенных свойств, чтобы получить каждый из них (не рекомендуется - вы должны запрашивать только те, которые вам нужны для снижения нагрузки). Так будет clientContext.load(list, "Title") или clientContext.load(list);

clientContext.executeQueryAsync(function() {  
    var listItemEnumerator = collListItem.getEnumerator(); 
    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current();  
     console.log("List Title", oListItem.get_item('Title')); 
    } 
}, <...>); 

Обратите внимание, что вы можете получить любую недвижимость через get_item метод (но вы должны просить, чтобы загрузить эту собственность или он будет бросать исключение).

Вот рабочий код:

var clientContext = SP.ClientContext.get_current(); 
var list = clientContext.get_web().get_lists().getByTitle("Artdesk alertes"); 

var caml = new SP.CamlQuery(); 
caml.set_viewXml(""); // empty query also works 

var listItemCollection = list.getItems(caml); 

clientContext.load(listItemCollection); // i requested every property 

clientContext.executeQueryAsync(function() { 
    var listItemEnumerator = listItemCollection.getEnumerator(); 

    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     console.log(oListItem.get_item('Title')); 
    } 

}, function(sender, args) { 
    window.console && console.log(args.get_message()); 
}); 
+0

спасибо за объяснение, что он работает просто отлично, у меня есть только один последний вопрос, как я могу сделать, чтобы получить только 2 последних объекта в моем списке? – ysfibm

+0

Для этого вы должны использовать запрос caml. Вот запрос, чтобы получить последние элементы ' \t \t \t \t \t ' OrderBy узел - вы говорите sharepoint для упорядочивания элементов по полю id в порядке убывания (нет атрибута Descending, поэтому используйте Ascending = 'FALSE'). Узел RowLimit - возьмите только 2 предмета. Он идет здесь 'caml.set_viewXml (<строка запроса caml>);' Обратите внимание, что в списках с позициями 4999+ вы получите пороговую ошибку. –

+0

спасибо, на моей странице html у меня есть тег div:

Как я могу поместить результат моего js-fonction в div? спасибо за помощь – ysfibm

0

Проверить get_item ('Title') на этот код из MSDN:

function retrieveListItems(siteUrl) { 
    var clientContext = new SP.ClientContext(siteUrl); 
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); 

    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml(
     '<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + 
     '<Value Type=\'Number\'>1</Value></Geq></Where></Query>' + 
     '<RowLimit>10</RowLimit></View>' 
    ); 
    this.collListItem = oList.getItems(camlQuery); 

    clientContext.load(collListItem); 
    clientContext.executeQueryAsync(
     Function.createDelegate(this, this.onQuerySucceeded), 
     Function.createDelegate(this, this.onQueryFailed) 
    ); 
} 

function onQuerySucceeded(sender, args) { 
    var listItemInfo = ''; 
    var listItemEnumerator = collListItem.getEnumerator(); 

    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     listItemInfo += '\nID: ' + oListItem.get_id() + 
      '\nTitle: ' + oListItem.get_item('Title') + 
      '\nBody: ' + oListItem.get_item('Body'); 
    } 

    alert(listItemInfo.toString()); 
} 

function onQueryFailed(sender, args) { 
    alert('Request failed. ' + args.get_message() + 
     '\n' + args.get_stackTrace()); 
} 
+0

привет спасибо я попробовать и does'nt работать для меня – ysfibm

+0

Любые ошибки, чтобы показать нам? – jpussacq

+0

Да, когда я помещаю его в консоль, у меня нет результата только undefined – ysfibm

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

  • Нет связанных вопросов^_^