asp.net 网格视图提供随机页码
本文关键字:随机 net 网格 视图 asp | 更新日期: 2023-09-27 18:31:30
我有一个网格视图,每个页面应该有 5 个元素,当超过 5 个元素时,应该有分页。
当前案例
当我有四个元素时,分页看起来--->不好
当我有五个元素时,分页包含 (1,2) 页--->错误
当我单击这些页码中的任何一个时,页码开始凹凸不平。 例如,如果我有两个页码 (1,2) 并且我点击了第 2 页,那么我将有 (1,2,3) 页码,依此类推。 ---> 错误
代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" AllowSorting="True"
OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="customerID" HeaderText="Customer ID" ReadOnly="true">
<HeaderStyle HorizontalAlign="Left" Wrap="False" />
<ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="firstName" HeaderText="Forename" ReadOnly="true">
<HeaderStyle HorizontalAlign="Left" Wrap="False" />
<ItemStyle HorizontalAlign="Left " VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="lastName" HeaderText="Surname" ReadOnly="true">
<HeaderStyle HorizontalAlign="Left" Wrap="False" />
<ItemStyle HorizontalAlign="Left " VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="mobileNumber" HeaderText="Phone" ReadOnly="true">
<HeaderStyle HorizontalAlign="Left" Wrap="False" />
<ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</asp:BoundField>
<asp:TemplateField HeaderText="Details" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<a href="javascript:void(0);" onclick="LoadDetails('<%#Eval("customerID")%>','<%#Eval("mobileNumber")%>',this)">
View Details</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Justify" CssClass="pageer"
VerticalAlign="Middle" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
我已经处理了页面索引更改:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
填充作为页面中的静态字段的 DataTable。在这种情况下,每次向页面发送回发时都不会创建此表。因此,从数据库获取的记录将添加到数据表中的现有记录中。从此字段中删除静态语句:
private DataTable dataTable = getDataTableStructure();