2016-09-21 101 views
0

我有通過CAML查詢檢索的列表項集合。我只設置查詢來檢索只有三個lates項目。檢索列表項並顯示它們

從項目的集合我然後想通過索引來檢索這三個項目並將它們輸出到佔位符,但是這目前不工作。有什麼我錯過了嗎?

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

獲得第一個列表項,並試圖使用一個佔位頁面上顯示它們:

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

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

獲取第二列表項,並試圖上顯示這些使用佔位符的頁面:

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

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

The reson我沒有使用foreac h循環遍歷項目集合是因爲​​我想控制它們顯示在哪個佔位符上,例如,

第一項將輸出到plhNewsHeadlineItem1和plhNewsDescriptionItem1佔位符。

第二項將輸出到plhNewsHeadlineItem2和plhNewsDescriptionItem2佔位符。

與此類似,第三項將輸出到plhNewsHeadlineItem3 plhNewsDescriptionItem3佔位符。

這是訪問和顯示CAML查詢檢索到的項目集合中的三個列表項的正確方法嗎?

回答

0

這實際上是工作,問題是我使用的庫/列表(原始創建從列表模板)由於某些原因字段沒有被拿起。我刪除了庫/列表並重新創建它,並且如預期的那樣工作。

相關問題