显示在asp listview中找到的记录数

时间:2013-07-31 20:26:37

标签: asp.net listview count

我认为这将是更好的,但我似乎找不到一个简单的解决方案。我有一个列表视图:

<asp:ListView ID="LVSearchResults" runat="server" DataSourceID="DSSearchResults">
    <ItemTemplate>
        <tr style="">
            <td>
                <asp:Label ID="PostDateLabel" runat="server" Text='<%# Eval("post_date") %>' />
            </td>
        </tr>
    </ItemTemplate>
    <LayoutTemplate>
        <table id="Table2" runat="server">
            <tr id="Tr1" runat="server">
                <td id="Td1" runat="server">
                    <table id="itemPlaceholderContainer" runat="server" border="0" style="">
                        <tr>
                            <th runat="server">Found Rows</th>
                        </tr>
                        <tr id="Tr2" runat="server" style="">
                            <th id="Th1" runat="server">Post Date</th>
                        </tr>
                        <tr id="itemPlaceholder" runat="server">
                        </tr>
                    </table>
                </td>
            </tr>
            <tr id="Tr3" runat="server">
                <td id="Td2" runat="server" style="">
                    <asp:DataPager ID="DataPager1" runat="server" PageSize="15">
                        <Fields>
                            <asp:NumericPagerField ButtonType="Link" ButtonCount="10" />
                        </Fields>
                    </asp:DataPager>
                </td>
            </tr>
        </table>
    </LayoutTemplate>
</asp:ListView>

我的数据源:

 <asp:Sqldatasource ID="DSSearchResults"  runat="server" ConnectionString="<%$ ConnectionStrings:CDRConnectionString %>"
     SelectCommand="usp_Search"
     SelectCommandType="StoredProcedure"
    >
 </asp:Sqldatasource>

我想要做的是显示找到的记录数。因此列表视图将显示为:

Found 123 records
Post Date
6/1/13
6/2/13
etc.

我试过玩容器,但似乎没有提供任何东西,谷歌搜索,也找不到多少。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

只需在Listview上方(标记之外)放置一个文字(优于您的标签),并在DataBinding时设置其tekst值。

答案 1 :(得分:0)

您可以尝试以下操作:

HtmlTableCell th = (HtmlTableCell)LVSearchResults.FindControl("Th1");
th.InnerText = "Found " + LVSearchResults.Items.Count.ToString() + " items.";

但是因为你正在使用DataPager控件,所以它总是会返回15.所以也许你想要使用数据源中的数据来更新单元格。也许如果您展示DataSource,我可以告诉您如何从中获取它。

答案 2 :(得分:0)

它很容易 在代码隐藏中使用以下代码来获取所有记录

Ctype(listview1.FindControl(&#34; DataPager1&#34;),DataPager).TotalRowCount

而不是listview1,只需写下你的listview的ID。 。

祝你好运