Как получить заголовок списка элементов с помощью JavaScript

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

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

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?

2 ответа

Решение
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());  
});

Проверьте 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());
}
Другие вопросы по тегам