Gridview分页初使用,心得浅谈

本文介绍了使用ASP.NET中GridView控件实现分页的方法。包括启用分页的基础配置及自定义分页界面的设计,提供了前后端代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚接到网站的任务要做个“人员信息管理系统”,由于才接触.net不久,所以也是一边学习一边制作,各种Geogle,百度之后终于还是搞定了,虽然这个过程比较艰辛,不过总结一下自己还是成长了不少,如下是我在使用GridView分页控件时候的一点心得,希望能够帮助更多像我一样的小白!

1.      GridView本身是带分页功能的,这个很简单,我自己用的是VS2010,只要在GridView属性里面的AllowPaging修改为True,就可以了,

这里简单介绍一下分页各个属性的意思(嘿嘿,这里主要是给第一次用的小白讲的,各位大神见谅),PageIndex是GridView初始界面的所在索引,我这里设置其为0,那么我的G控件则是从第一页开始显示的,如果填1,那么就是第二页,以此类推。。。PageSize是每页显示的数据的条数,我这里设置为10 ,那么一页中将显示10条数据,接下来我们看PageSetting,将它展开可以看到:


真的很简单,只要会些英语都可以知道,在那个Mode里面我们可以选择分页时的样式,Numeric是数字,还有其他样式,这个自己选择的试一下就知道了,不过有一个问题我至今也没有搞定,还希望有大神能够给我解疑,就是我在选择FirstPageImageUrl和LastPageImageUrl时,打开文件夹是看不到图片的,如图

不过这个问题还不至于让项目陷入僵局,将就将就也还是可以的,毕竟基本的分页功能实现了,接下里就是后台代码了:其中PageIndexChange和PageIndexChanging事件都在gridview控件的事件里,找到双击添加代码即可,这里,第一个方法就算完成了,但是我们能够明显的感觉到这个方法局限性很大,不够美观,总之除了实现了分页的功能以外别的都不怎么给力啊,那么接下来我们来看看第二种方法:

首先,要使用这种方法你需要在Gridview任务界面选择,编辑模版

然后选择最下面的PagerTemplate,在这个界面你就可以自由构造你的分页界面了,这个方法我也是从网上找的,那么就以网上给的一个例子来说,具体效果如图:


和尾页是LinkButton控件,翻页按钮是Button控件,都很简单,具体前台代码如下:

<PagerTemplate>
                <br />        
         <asp:LinkButton ID="lbnFirst" runat="Server" Text="首页"  
                    Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' 
                    CommandName="Page" CommandArgument="First" Font-Bold="True" 
                    Font-Names="Constantia" Font-Underline="False" ></asp:LinkButton>
                <asp:Button ID="Button7" runat="server" 
                    Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' 
                    CommandName="Page" CommandArgument="Prev" BackColor="#1967F5" 
                    Font-Bold="True" ForeColor="White" Height="21px" Text="&lt;" 
                    Width="31px" />
         <asp:Label ID="lblPage" runat="server" 
                    Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1)  + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %>' 
                    Font-Bold="True"></asp:Label> 
                <asp:Button ID="Button8" runat="server"  
                    Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' 
                    CommandName="Page" CommandArgument="Next" BackColor="#1967F2" Font-Bold="True" 
                    ForeColor="White" Height="21px" Text="&gt;" Width="31px"  />
         <asp:LinkButton ID="lbnLast" runat="Server" Text="尾页"   
                    Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' 
                    CommandName="Page" CommandArgument="Last" Font-Bold="True" 
                    Font-Underline="False" ></asp:LinkButton>
         到第<asp:TextBox runat="server" ID="inPageNum" Height="21px" Width="107px"></asp:TextBox>页 <asp:Button ID="Button1" 
                    CommandName="go" runat="server" BackColor="#3399FF" Font-Bold="True" 
                    Font-Names="Algerian" ForeColor="Black" Text="Go" />
         <br />
     </PagerTemplate>

其实只是简单的托几个控件之后补充上相应的代码即可,如果想要其他样式还可以自定义托其他控件,原理和上面是一样的,后台代码如下:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgse)

        {

           

            GridView1.PageIndex =e.NewPageIndex;

            DataBaseConn();

            TextBox tb = (TextBox)GridView1.BottomPagerRow.FindControl("inPageNum");

            tb.Text = (GridView1.PageIndex +1).ToString();

        }

protected void GridView1_RowCommand(objectsender, GridViewCommandEventArgs e)

        {

            if(e.CommandName == "go")

            {

                try

                {

                    TextBoxtb = (TextBox)GridView1.BottomPagerRow.FindControl("inPageNum");

                    int num = Int32.Parse(tb.Text);

                    GridViewPageEventArgsee = new GridViewPageEventArgs(num- 1);

                   GridView1_PageIndexChanging(null, ee);

                }

                catch{ }

            }

        }    

这样,分页就完成了,当然在这之前可不要忘了把AllowPaging先设为True!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值