Gridview分页初使用,心得浅谈

最近刚接到网站的任务要做个“人员信息管理系统”,由于才接触.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!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridView 是一个常用的控件,用于在网页上展示数据。当数据量较大时,我们通常需要对 GridView 进行分页,以便用户能够方便地浏览数据。下面是 GridView 分页使用方法: 1. 在 .aspx 页面上添加 GridView 控件,并设置 AllowPaging 属性为 True。 ```html <asp:GridView ID="GridView1" runat="server" AllowPaging="True"></asp:GridView> ``` 2. 在 .aspx.cs 页面中编写代码,设置 GridView 的数据源并绑定数据。同时,设置 GridView 的 PageSize 属性为每页显示的数据量。最后,调用 DataBind() 方法绑定数据。 ```c# protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 设置数据源 DataTable dt = GetData(); // 设置每页显示的数据量 GridView1.PageSize = 10; // 绑定数据 GridView1.DataSource = dt; GridView1.DataBind(); } } private DataTable GetData() { // 从数据库中获取数据 // ... // 返回数据表 return dt; } ``` 3. 在 .aspx 页面上添加 PagerTemplate,用于显示分页按钮。 ```html <asp:GridView ID="GridView1" runat="server" AllowPaging="True"> <PagerTemplate> <asp:LinkButton ID="lnkPrev" runat="server" CommandName="Page" CommandArgument="Prev">上一页</asp:LinkButton> <% for (int i = 0; i < GridView1.PageCount; i++) { %> <asp:LinkButton ID="lnkPage" runat="server" CommandName="Page" CommandArgument="<%# i %>" Text="<%# i + 1 %>"></asp:LinkButton> <% } %> <asp:LinkButton ID="lnkNext" runat="server" CommandName="Page" CommandArgument="Next">下一页</asp:LinkButton> </PagerTemplate> </asp:GridView> ``` 4. 在 .aspx.cs 页面中编写代码,处理分页按钮的事件。 ```c# protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Page") { // 获取当前页码 int pageIndex = GridView1.PageIndex; if (e.CommandArgument.ToString() == "Prev") { // 上一页 if (pageIndex > 0) { pageIndex--; } } else if (e.CommandArgument.ToString() == "Next") { // 下一页 if (pageIndex < GridView1.PageCount - 1) { pageIndex++; } } else { // 其他页码 pageIndex = Convert.ToInt32(e.CommandArgument); } // 设置当前页码 GridView1.PageIndex = pageIndex; // 重新绑定数据 GridView1.DataSource = GetData(); GridView1.DataBind(); } } ``` 通过以上步骤,就可以实现 GridView分页功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值