2016-08-05 1 views
0

J'essaie de récupérer les éléments de la liste Titre pour l'insérer dans une section div dans ma page d'accueil SharePoint, j'ai trouvé ce code qui récupèrent l'URL.Comment faire pour récupérer le titre des éléments de la liste en utilisant JavaScript

cela fonctionne très bien.

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()); 
}); 

Comment obtenir le titre de l'élément de liste à l'aide du modèle d'objet JavaScript?

Répondre

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

Vous demandez la propriété "DefaultDisplayFormUrl" ici. Vous pouvez spécifier la propriété Titre ou simplement supprimer la demande de propriétés spécifiques pour obtenir chacune d'entre elles (non recommandé - vous ne devez demander que celles dont vous avez besoin pour réduire la charge). Il sera clientContext.load(list, "Title") ou 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')); 
    } 
}, <...>); 

Notez que vous pouvez obtenir une propriété via la méthode get_item (mais vous devez demander de charger cette propriété ou il lèveront une exception).

Voici le code de travail:

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

merci pour l'explication cela fonctionne très bien, je n'ai qu'une dernière question, comment puis-je faire pour récupérer seulement les 2 derniers éléments de ma liste? – ysfibm

+0

Vous devez utiliser la requête caml pour cela. Voici la requête pour récupérer des articles derniers ' \t \t \t \t \t ' nœud OrderBy - vous dites sharepoint pour classer les éléments par champ d'identification dans l'ordre décroissant (il n'y a pas d'attribut Descending donc utilisez Ascending = 'FALSE'). Noeud RowLimit - ne prend que 2 éléments. Il va ici 'caml.set_viewXml ();' Notez que dans les listes avec 4999+ éléments, vous obtiendrez une erreur de seuil. –

+0

merci, dans ma page html j'ai une balise div:

comment puis-je mettre le résultat de ma fonction js dans le div? merci pour l'aide – ysfibm

0

Vérifier get_item ('titre') sur ce code de 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

salut merci je l'ai essayer et travailler dans Does'nt pour moi – ysfibm

+0

Toute erreur de nous montrer? – jpussacq

+0

oui quand je l'ai mis dans la console, je n'ai pas de résultat seulement indéfini – ysfibm