2016-09-21 6 views
0

J'ai une collection d'éléments de liste récupérés via la requête CAML. J'ai seulement placé la question pour récupérer seulement les trois éléments de lates. A partir de la collection d'éléments, je veux ensuite récupérer ces trois éléments par index et les afficher dans des espaces réservés, mais cela ne fonctionne pas pour le moment. Y a-t-il quelque chose que j'ai manqué?Récupérer des éléments de liste et les afficher

requête CAML:

string displayOnHomePage = "True"; 

SPQuery queryNewsItems = new SPQuery(); 

queryNewsItems.Query = @"<Where>" + 
         "<Neq>" + 
         "<FieldRef Name='DisplayOnHomePage'/>" + 
         "<Value Type='Boolean'>" + displayOnHomePage + 
         "</Value>" + 
         "</Neq>" + 
         "</Where>" + 
         "<OrderBy>" + 
         "<FieldRef Name='ImageCreateDate' Ascending ='False'/>" + 
         "</OrderBy>"; 

queryNewsItems.RowLimit = 3; 
SPListItemCollection newsItemsCollection = newsItems.GetItems(queryNewsItems); 

Obtenir le premier élément de la liste et en essayant de les afficher sur la page en utilisant un support de lieu:

string newsHeadlineItem1 = newsItemsCollection[0]["NewsHeadline"].ToString(); 
string newsDescriptionItem1 = newsItemsCollection[0]["NewsDescription"].ToString(); 

plhNewsHeadlineItem1.Controls.Add(new LiteralControl(newsHeadlineItem1)); 
plhNewsDescriptionItem1.Controls.Add(new LiteralControl(newsDescriptionItem1)); 

Obtenir le deuxième élément de la liste et en essayant de les afficher sur la page utilisant un espace réservé:

string newsHeadlineItem2 = newsItemsCollection[1]["NewsHeadline"].ToString(); 
string newsDescriptionItem2 = newsItemsCollection[1]["NewsDescription"].ToString(); 

plhNewsHeadlineItem2.Controls.Add(new LiteralControl(newsHeadlineItem2)); 
plhNewsDescriptionItem2.Controls.Add(new LiteralControl(newsDescriptionItem2)); 

Le réson je n'utilise pas foreac h boucle à parcourir la collection d'éléments est parce que je veux contrôler à quel espace réservé ils sont affichés sur, par exemple.

Le premier élément sera affiché dans les espaces réservés plhNewsHeadlineItem1 et plhNewsDescriptionItem1.

Le deuxième élément sera affiché dans les espaces réservés plhNewsHeadlineItem2 et plhNewsDescriptionItem2.

Et de la même manière pour le troisième élément sera sortie vers les espaces réservés plhNewsHeadlineItem3 plhNewsDescriptionItem3.

Est-ce l'approche correcte pour accéder et afficher les trois éléments de liste de la collection d'éléments récupérés par la requête CAML?

Répondre

0

Cela fonctionne réellement, le problème était la bibliothèque/liste que j'utilisais (original créé à partir d'un modèle de liste) pour une raison quelconque, les champs n'étaient pas ramassés. J'ai supprimé la bibliothèque/liste et l'ai recréée et tout est comme prévu.