【发布时间】:2017-01-30 06:40:26
【问题描述】:
我有一组通过 CAML 查询检索到的列表项。我只将查询设置为仅检索三个迟到的项目。
然后我想从项目集合中按索引检索这三个项目并将它们输出到占位符,但是目前这不起作用。有什么我错过的吗?
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 占位符。
同样,第三个项目将输出到 plhNewsHeadlineItem3 plhNewsDescriptionItem3 占位符。
这是从 CAML 查询检索到的项目集合中访问和显示三个列表项目的正确方法吗?
【问题讨论】:
标签: c# sharepoint-2010 web-parts caml