GridView分頁功能其實非常簡單。這是一個簡單的分頁實現,給需要的做個參考。基於一下的思路很容易就可以做強大的分頁出來 頁面代碼:
- <asp:GridView ID="gv_unionlist" runat="server" AutoGenerateColumns="False" Width="100%" OnRowDataBound="gv_unionlist_RowDataBound" OnRowCommand="gv_unionlist_RowCommand" AllowPaging="True" OnRowCreated="gv_unionlist_RowCreated" PageSize="2">
- <Columns>
- <asp:BoundField DataField="ID" HeaderText="ID" />
- <asp:BoundField DataField="unionid" HeaderText="會員號" />
- <asp:BoundField DataField="username" HeaderText="使用者名稱" />
- <asp:BoundField DataField="company" HeaderText="公司名" />
- <asp:BoundField DataField="dutyman" HeaderText="業務負責人" />
- <asp:BoundField DataField="dutymanmobile" HeaderText="業務負責人手機" />
- <asp:TemplateField HeaderText="全選">
- <ItemTemplate>
- <asp:CheckBox ID="CheckBox1" runat="server" />
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="訂單情況">
- <ItemTemplate>
- <asp:LinkButton ID="lb_Orders" runat="server">查看訂單</asp:LinkButton>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="房態修改">
- <ItemTemplate>
- <asp:Button ID="tb_RoomStatus" runat="server" CommandName="RoomStatus" Text='<%#bind("RoomStatusFlag") %>' OnClientClick="return confirm('修改房態修改狀態?');" />
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="自動滿房">
- <ItemTemplate>
- <asp:Button ID="tb_AutoFullRoom" runat="server" CommandName="AutoFullRoom" Text='<%#bind("AutoFullRoomFlag") %>' />
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="操作">
- <ItemTemplate>
- <asp:LinkButton ID="lb_Del" runat="server" OnClientClick="return confirm('刪除此記錄?')" CommandName="del">刪除</asp:LinkButton>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:HyperLinkField DataNavigateUrlFields="id" DataNavigateUrlFormatString="~/Admin/Union.aspx?action=update&id={0}"
- HeaderText="確認與修改" Text="確認與修改" />
- <asp:BoundField DataField="registerdt" HeaderText="註冊時間" />
- <asp:BoundField DataField="lastlogindt" HeaderText="最後登陸時間" />
- <asp:BoundField DataField="logincount" HeaderText="登陸次數" />
- </Columns>
- <PagerSettings Position="TopAndBottom" />
- <PagerTemplate>
- <table style="width: 100%">
- <tr>
- <td align="right">
- 當前頁:<asp:DropDownList ID="dl_pager" runat="server" AutoPostBack="True" OnSelectedIndexChanged="dl_pager_SelectedIndexChanged">
- </asp:DropDownList>/每頁:<asp:Label ID="lb_pagesize" runat="server"></asp:Label>
- 條</td>
- </tr>
- </table>
- </PagerTemplate>
- </asp:GridView>
CS代碼:
- protected void gv_unionlist_RowDataBound(object sender, GridViewRowEventArgs e)
- {
- if (e.Row.RowType == DataControlRowType.Pager)
- {
- ((DropDownList)e.Row.FindControl("dl_pager")).Items.Clear();
- ((Label)e.Row.FindControl("lb_pagesize")).Text = gv_unionlist.PageSize.ToString();
- for (int i = 0; i < this.gv_unionlist.PageCount; i++)
- {
- ListItem item = new ListItem(Convert.ToString(i + 1), i.ToString());
- if (item.Value == this.gv_unionlist.PageIndex.ToString())
- item.Selected = true;
- ((DropDownList)e.Row.FindControl("dl_pager")).Items.Add(item);
- }
- }
- }
- protected void dl_pager_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (this.gv_unionlist.PageIndex != Convert.ToInt32(((DropDownList)gv_unionlist.TopPagerRow.FindControl("dl_pager")).SelectedValue))
- this.gv_unionlist.PageIndex = Convert.ToInt32(((DropDownList)gv_unionlist.TopPagerRow.FindControl("dl_pager")).SelectedValue);
- else if (this.gv_unionlist.PageIndex != Convert.ToInt32(((DropDownList)gv_unionlist.BottomPagerRow.FindControl("dl_pager")).SelectedValue))
- this.gv_unionlist.PageIndex = Convert.ToInt32(((DropDownList)gv_unionlist.BottomPagerRow.FindControl("dl_pager")).SelectedValue);
- this.searchUnion();
- }