2013-11-22 33 views
0

所以我有GridView表的用戶控件。我有更多的表比這個更大,並且啓用了分頁功能,但是我用它作爲示例。我希望每個表格都像這樣顯示,其中有一百行的表格會在第一頁上顯示「正在顯示:1 - 10個100」,「顯示:第二個顯示:11 - 20個」等。帶分頁的GridView的行數

enter image description here 這是它現在是如何編碼的(在我的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顯示?

我希望這是有道理的。謝謝。

回答

4

要獲取網格中所有頁面的總行數,請使用GridView.Rows,因爲它表示網格中所有數據行的集合。您可以使用收集的Count財產,像這樣:

C#:

int totalRowsCount = GridView1.Rows.Count; 

VB.NET:

Dim totalRowsCount As Integer = GridView1.Rows.Count 

現在,你的問題是,從我所看到的您的發佈代碼,您的用戶控件不會通過頁面可以使用的屬性或事件公開此信息。我建議將這個Showing 1-6 of 6消息放入用戶控件本身,因此它具有對網格的組件級訪問權限,並且可以輕鬆獲取需要顯示的信息。無論是網格中的頁腳行還是位於實際網格本身之下的標籤。

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