GridView控件的绑定分页功能

先截个图给大家看看,要实现的效果是什么样的,如下图:

   

这样的效果是在前台页面GridView控件代码中绑定出来了,就是将一段代码粘贴到gridview中会自动出现这种功能,而且这种效果除了跳转功能需要在后台cs文件中写代码,前面的都不需要。。。

Gridview控件绑定后台数据库,前台页面设计我就不多说,我主要说的是分页功能代码具体放在Gridview什么位置。前台gridview形如:

<asp:GridView>

<Columns></Columns>

</asp:GridView>

下面要将分页功能的代码粘贴到</Columns>在这里</asp:GridView>这俩个标签之间。具体代码示例:

<PagerTemplate>
            <div><asp:Label ID="lblPageIndex" runat="server" Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 

%>"></asp:Label>
            页            
            
            共
            <asp:Label ID="lblPageCount" runat="server" Text="<%# ((GridView)Container.Parent.Parent).PageCount 

%>"></asp:Label>
<asp:LinkButton ID="btnFirst" runat="server" CausesValidation="False" CommandArgument="First" 

CommandName="Page" Text="首页"></asp:LinkButton>
            <asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandArgument="Prev" CommandName="Page" 

Text="上一页"></asp:LinkButton> 
             <asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandArgument="Next"  

CommandName="Page" Text="下一页"></asp:LinkButton>  
             <asp:LinkButton ID="btnLast" runat="server" CausesValidation="False" CommandArgument="Last"  

CommandName="Page" Text="尾页"></asp:LinkButton>          
             <asp:TextBox ID="txtNewPageIndex" runat="server" Text="<%# ((GridView)Container.Parent.Parent).PageIndex + 

1%>" Width="66px"></asp:TextBox>
              <asp:LinkButton ID="btnGoTo" runat="server"  CommandArgument="-1"  CommandName="Page"
            Text="跳转" OnClick="btnGoTo_Click"></asp:LinkButton>       
             </div>
         </PagerTemplate>

只要是将这段代码附加到前台页面中,基本上就不用管了,“第多少页,共多少页,首页,上一页,下一页,尾页”,这些功能的实现就已经自动绑定了,无需再操作后台代码。。。

说一点,跳转功能,需要gridview控件绑定一个事件,就是PageIndexChanging事件,cs代码如下:

        /// <summary>
        /// GridView分页
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView.DataSource = (DataSet)ViewState["ds"];
            if (e.NewPageIndex < 0)
            {
                if (int.Parse(((TextBox)GridView.BottomPagerRow.FindControl("txtNewPageIndex")).Text) <= 0)
                {
                    GridView.PageIndex = 0;
                }
                else
                {
                    GridView.PageIndex = int.Parse(((TextBox)GridView.BottomPagerRow.FindControl("txtNewPageIndex")).Text) - 1;
                }
            }
            else
            {
                GridView.PageIndex = e.NewPageIndex;
            }
            GridView.Visible = true;
            BindData_Registration();
        }

跳转功能,还有一个就是跳转按钮的Click事件,代码如下:

        /// <summary>
        /// 分页跳转
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGoTo_Click(object sender, EventArgs e)
        {
            GridView.DataSource = (DataSet)ViewState["ds"];
            if (int.Parse(((TextBox)GridView.BottomPagerRow.FindControl("txtNewPageIndex")).Text) >= GridView.PageCount)
            {
                GridView.PageIndex = GridView.PageCount - 1;
            }
            else
            {
                GridView.PageIndex = int.Parse(((TextBox)GridView.BottomPagerRow.FindControl("txtNewPageIndex")).Text) - 1;
            }
            BindData_Registration();
            GridView.BottomPagerRow.Visible = true;
        }

如此,再加载运行您的程序,分页功能就可以使用了。。。

当然,也有很多的分页功能样式,如您自己喜欢,或者项目上的要求去实现吧。

一家之言,仅供参考!!!

原文地址:https://www.cnblogs.com/litao4047/p/3123597.html