我有一组通过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));
我没有使用foreach循环遍历项目集合的共鸣是因为我想控制它们显示在哪个占位符上。
第一项将输出到plhNewsHeadlineItem1和plhNewsDescriptionItem1占位符。
第二项将输出到plhNewsHeadlineItem2和plhNewsDescriptionItem2占位符。
同样,thrid项目将输出到plhNewsHeadlineItem3 plhNewsDescriptionItem3占位符。
这是访问和显示CAML查询检索的项目集合中的三个列表项的正确方法吗?
答案 0 :(得分:0)
这实际上是有效的,问题是我正在使用的库/列表(原始从列表模板创建)由于某种原因没有拾取字段。我删除了库/列表并重新创建了它,它完全符合预期。