2015-10-02 3 views
0

У меня есть gridview, связанный данными из кода позади. Пейджинг применяется в gridview. Все работает нормально. Для показа Строка-указатель i использую Container.DisplayIndex.Container.DisplayIndex не работает с подкачкой в ​​ASP.NET

Когда я перехожу на следующую страницу через пейджинг, каждый раз, когда gridview прекрасно связывается, но DisplayIndex начинается с 1 на страницу. Я не знаю, что не так с кодом.

Вот Asp.NET Код:

<asp:GridView runat="server" ID="dlAddress" AutoGenerateColumns="false" AllowPaging="True" OnPageIndexChanging="dlAddress_PageIndexChanging" > 
<Columns> 
     <asp:TemplateField> 
       <ItemTemplate> 
         <asp:Label ID="lblRowNumber" Text='<%# Container.DisplayIndex + 1 %>' runat="server" /> 
       </ItemTemplate> 
     </asp:TemplateField> 
</Columns> 
<PagerStyle HorizontalAlign="Center"/> 
</asp:GridView> 

C# Код:

public void bindGridView() 
{ 
     DBACon.Open(); 
     SqlCommand Cmd = new SqlCommand("getAddresses", DBACon); 
     Cmd.CommandType = CommandType.StoredProcedure; 
     SqlDataAdapter AHadp = new SqlDataAdapter(Cmd); 
     AHadp.Fill(DS); 
     dlAddress.DataSource = DS; 
     dlAddress.DataBind(); 
} 

protected void dlAddress_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
     dlAddress.PageIndex = e.NewPageIndex; 
     bindGridView(); 
} 
+0

Я ответил на аналогичный вопрос для «DataGrid». Взгляните и посмотрите, поможет ли это. Думаю, вам просто нужно будет изменить название индекса. [Нумерация последовательностей] (http://stackoverflow.com/questions/31628482/numbering-sequence-number-in-datagrid-asp-net/31629134#31629134) – jsanalytics

+0

В принципе вам нужно учитывать размер страницы и текущий индекс в вашей привязке , – jsanalytics

+0

, когда я на первой странице, тогда он показывает от 1 до 10 после этого от 11 до 20 и так далее, но в настоящее время на каждой странице он показывает от 1 до 10 – Anjyr

ответ

1

Здесь

ASPX:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="5" AutoGenerateColumns="False" DataKeyNames="AddressID" DataSourceID="SqlDataSource1"> 
     <Columns> 
      <asp:TemplateField HeaderText="RowNumber"> 
       <ItemTemplate> 
        <%# (GridView1.PageSize * GridView1.PageIndex) + Container.DisplayIndex + 1%> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

enter image description here

Смежные вопросы