我正在使用asp.net转发器的SelectMethod来返回我的对象。是否可以获得退回的物品数量?
我最初使用的是<%#: Items.Count %>
但很快意识到没有返回正确数量的对象。
<asp:Repeater ID="docResults" runat="server"
ItemType="ArchiveViewer.Models.Document"
SelectMethod="GetSearchResults" >
<HeaderTemplate>
<p class="result-info">
Found <strong> <%#: Items.Count %> </strong> results.
</p>
</HeaderTemplate>
<ItemTemplate>
<div>
Title: <%#:Item.Metadata.Title %>
</div>
<div>
Author: <%#:Item.Metadata.Author %>
</div>
</ItemTemplate>
</asp:Repeater>
编辑:根据要求:我的GetSearchResults方法......
[WebMethod]
public IEnumerable<Document> GetSearchResults(
[QueryString("query")] string query,
[QueryString("type")] string queryType)
{
IEnumerable<Document> results = null;
try
{
ArchiveSearcher searcher = new ArchiveSearcher();
results = searcher.SearchMetadata(query, queryType, 1, 20);
if (results.Count() > 0)
{
// Display the first search result in the viewer
Document firstResult = results.FirstOrDefault();
hfCurrentDocId.Value = firstResult.DocumentId.ToString();
hfImageDir.Value = firstResult.FolderPath;
hfObjectData.Value = firstResult.JSONPath;
}
}
catch (Exception ex)
{
// Log the exception.
ArchiveViewer.Logic.ExceptionUtility.LogException(ex,
"GetSearchResults in Search.aspx.cs");
}
return results;
}
谢谢!
答案 0 :(得分:0)
如果使用标签和ID替换计数控件:
<HeaderTemplate>
<asp:Label ID="TotalCount" runat="server" />
数据绑定后,您可以获取转发器项目的数量,从控件中获取TotalCount标签。有些人使用的方法如下:
Repeater1.Controls(0).FindControl("TotalCount")
提取它,并在数据绑定后设置它。请记住,Repeater Items集合中包含标题,因此您只想计算转发器项。要获取项目数,请执行以下操作:
Repeater1.Items.Where(i => i.ItemType == ListItemType.Item)
您必须包含要计算的项目类型,提及here。