GridView分页的实现

要在GridView中加入

//实现分页

AllowPaging="true"

//一页数据10行

PageSize="10"

// 分页时触发的事件 OnPageIndexChanging="gvwDesignationName_PageIndexChanging"

在服务器事件里

复制代码
复制代码
protectedvoid gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvwDesignationName.PageIndex=e.newIndex;
bingDesignatioonName(); }
复制代码
复制代码

这里我给出一个通用显示分页的模板(网上搜的,自己给出注释)

复制代码
<PagerTemplate>                 当前第:                 //((GridView)Container.NamingContainer)就是为了得到当前的控件                <asp:Label ID="LabelCurrentPage" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label>                 页/共:                 //得到分页页面的总数                <asp:Label ID="LabelPageCount" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label>                 页                  //如果该分页是首分页,那么该连接就不会显示了.同时对应了自带识别的命令参数CommandArgument                <asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"                     Visible='<%#((GridView)Container.NamingContainer).PageIndex != 0 %>'>首页</asp:LinkButton>                 <asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"                     CommandName="Page" Visible='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'>上一页</asp:LinkButton>                //如果该分页是尾页,那么该连接就不会显示了                <asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"                     Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>下一页</asp:LinkButton>                 <asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"                     Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>尾页</asp:LinkButton>                 转到第                 <asp:TextBox ID="txtNewPageIndex" runat="server" Width="20px" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>'/>页                 //这里将CommandArgument即使点击该按钮e.newIndex 值为3                 <asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-2"                     CommandName="Page" Text="GO"/>             </PagerTemplate>
复制代码

对应该事件中代码为

复制代码
protectedvoid gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         // 得到该控件        GridView theGrid = sender as GridView;         int newPageIndex =0;         if (e.NewPageIndex==-3)         {             //点击了Go按钮            TextBox txtNewPageIndex =null;
           
//GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow            GridViewRow pagerRow = theGrid.BottomPagerRow;                         if (pagerRow !=null)             {                 //得到text控件                txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;                }             if ( txtNewPageIndex!=null)             {                 //得到索引                newPageIndex =int.Parse(txtNewPageIndex.Text) -1;             }         }         else         {             //点击了其他的按钮            newPageIndex = e.NewPageIndex;         }         //防止新索引溢出        newPageIndex = newPageIndex <0?0 : newPageIndex;         newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount -1 : newPageIndex;                 //得到新的值        theGrid.PageIndex = newPageIndex;                  //重新绑定        bingDesignatioonName();     }
复制代码
原文地址:https://www.cnblogs.com/jiangnini/p/3403881.html