2013-11-22 4 views
0

Итак, у меня есть пользовательские элементы управления с таблицами GridView. У меня больше таблиц, которые намного больше, чем у этого, и имеют пейджинг, но я использую это в качестве примера. Я хочу, чтобы каждая таблица отображалась, как эта, где стол со ста строк будет говорить «Показаны: 1 - 10 из 100» на первой странице, «Показаны: 11 - 20 из 100» на второй и т. Д.Количество строк для 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 
Смежные вопросы