有时候也需要偷懒一下 –GridView 自带分页实现(超级简单)
<PagerTemplate> <table style="width:100%"> <tr> <td> 第<asp:Label ID="lbCurrentPage" runat="server" Text="<%#GVSample.PageIndex+1 %>"></asp:Label> 页/ 共<asp:Label ID="lbTotalPage" runat="server" Text="<%#GVSample.PageCount %>"></asp:Label> 页 <asp:LinkButton ID="lbtnFirst" runat="server" CausesValidation="false" CommandArgument="First" CommandName="Page">首页</asp:LinkButton> <asp:LinkButton ID="lbtnPrev" runat="server" CausesValidation="false" CommandArgument="Prev" CommandName="Page">上一页</asp:LinkButton> <asp:LinkButton ID="lbtnNext" runat="server" CausesValidation="false" CommandArgument="Next" CommandName="Page">下一页</asp:LinkButton> <asp:LinkButton ID="lbtnLast" runat="server" CausesValidation="false" CommandArgument="Last" CommandName="Page">尾页</asp:LinkButton> <label> 跳转到</label> <asp:DropDownList ID="ddlPages" runat="server" AutoPostBack="true" Width="40px" OnSelectedIndexChanged="ddlPages_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> </table> </PagerTemplate>
protected void GVSample_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Pager) { GridView gv = sender as GridView; if (((Label)e.Row.FindControl("lbCurrentPage")).Text == "1") { ((LinkButton)e.Row.FindControl("lbtnFirst")).Visible = false; ((LinkButton)e.Row.FindControl("lbtnPrev")).Visible = false; } if (((Label)e.Row.FindControl("lbCurrentPage")).Text == ((Label)e.Row.FindControl("lbTotalPage")).Text) { ((LinkButton)e.Row.FindControl("lbtnNext")).Visible = false; ((LinkButton)e.Row.FindControl("lbtnLast")).Visible = false; } DropDownList ddl = ((DropDownList)e.Row.FindControl("ddlPages")); for (int i = 1; i <= gv.PageCount; i++) { ListItem item = new ListItem(); item.Value = i.ToString(); item.Text = i.ToString(); ddl.Items.Add(item); } ddl.Items.FindByValue((gv.PageIndex + 1).ToString()).Selected = true; } }