【发布时间】:2015-12-30 18:40:23
【问题描述】:
我有一个与后面代码中的数据绑定的网格视图。分页应用于gridview。一切正常。为了显示行索引,我使用Container.DisplayIndex。
当我通过分页转到下一页时,每次 gridview 完美绑定但 DisplayIndex 从 1 开始到 pagesize。我不知道代码有什么问题。
这是 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();
}
【问题讨论】:
-
我为
DataGrid回答了类似的问题。看看它是否有帮助。我猜你只需要更改索引命名。 Sequence Numbering -
基本上您需要在绑定中考虑页面大小和当前索引。
-
当我在第一页时,它会在 11 到 20 之后显示 1 到 10,依此类推,但目前每个页面都显示 1 到 10
-
在
GridView中它被称为PageIndex...CurrentPageIndex是DataGrid,你只需要做映射,但想法是一样的。 -
我认为您的标签的表达式应该是这样的:
<%# (dlAddress.PageSize * dlAddress.PageIndex) + Container.DisplayIndex + 1%>。
标签: c# asp.net .net gridview pagination