所以我有GridView表的用户控件。我有更多的表比这个更大,并启用了分页,但我以此为例。我希望每个表都像这样显示,其中一行有一百行会在第一页上显示“显示:1 - 10的100”,第二页显示“显示:11 - 20的100”,等等。 p>
这是它现在编码的方式(在我的html文件中):
<div id="WebsiteHitsMacro">
<umbraco:Macro ID="Macro303" Alias="WebsiteHitsControl" runat="server"></umbraco:Macro>
</div>
<div class="ui-widget-header ui-state-default ui-corner-bl ui-corner-br ui-helper clearfix bottom">
<div class="dataTables_info" id="websitehits_info">Showing: 1-6 of 6</div>
</div>
这是ascx代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" CssClass="dataTable" AllowPaging="True"
AllowSorting="True">
<AlternatingRowStyle CssClass="altrow" />
<HeaderStyle CssClass="ui-state-default" />
<Columns>
<asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
</Columns>
</asp:GridView>
我不知道如何获得行数。是否可以将它显示在我在这里的div中?
我希望这是有道理的。感谢。
答案 0 :(得分:4)
要获取网格所有页面的总行数,请使用GridView.Rows
,因为它表示网格中所有数据行的集合。您可以使用该集合的Count
属性,如下所示:
C#:
int totalRowsCount = GridView1.Rows.Count;
VB.NET:
Dim totalRowsCount As Integer = GridView1.Rows.Count
现在,您的问题在于,根据我发布的代码,您的用户控件不会通过页面可以使用的属性或事件公开此信息。我建议将此Showing 1-6 of 6
消息放入用户控件本身,因此它具有对网格的组件级访问权限,并且可以轻松获取显示所需的信息。网格中的页脚行或位于实际网格本身正下方的标签。
答案 1 :(得分:3)
你说你的Gridview
有分页。通过使用Dim cnt As Integer = Gridview1.Rows.Count
,它只返回Gridview中的行数,而不是数据源已过滤的总行数。
由于您使用的是SqlDataSource,请尝试以下代码:
Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEvent Args) Handles
SqlDataSource1.Selected
Dim cnt As Integer = e.AffectedRows
End Sub