你好,欢迎访问我的博客!登录
当前位置:首页 - 教程 - 正文 君子好学,自强不息!

如何实现gridview分页,GridView控件实现分页技术教程

2018-06-22 12:43:59教程admin95°c
A+ A-


gridview 分页

GridView在大数据集时高效的分页在ASP.NET 1.1下有一个很好用的数据列表显示控件DataGrid,他有一个专门的设置数据记录数的属性"VirtualItemCount",这样可以很好的解决大数据集的分页问题,即每次读取一页的数据,但还是把数据集总数值赋给这个虚拟记录数属性,也就避免了每次都要读取所有数据 (当然你也可以自定义分页方式,也有很多现成的分页控件,这就不是本文讨论的范围了, 我比较懒,觉得GridView自身的分页功能已经足够用了,呵呵). 到了ASP.NET 2.0,有了更强大的数据显示控件GridView, 但有一个遗憾,它没有了"VirtualItemCount"这个属性, PageCount属性也是只读的,如果你想用它本身的分页功能,只能把所有数据作为它的数据源, 当这个数据集很大时,性能或许会成为一个问题, 或者这样让追求效率的你觉得有些不爽,怎么办? 

代码实现,则需要这么做

1、允许分页:设置AllowPaging=True;

2、设置GridView属性栏中PagerSetting里的一些属性中,定义分页的样式;

3、数据部署:将数据显示到GridView上;

4、加入相关事件:PageIndexChanged()、PageIndexChanging();

5、如果要添加分页码显示,即显示当前在第几页,还需添加DataBound()事件。

GridView控件实现分页技术

设置GridView控件的属性

跟分页相关的属性设置如下:

AllowPaging="true":允许分页, PageSize="大小":每一页显示的信息条数,

OnPageIndexChanging="GridView1_PageIndexChanging":页数改变时触发的事件。

设置GridView控件的PagerTemplate页模板属性。

PageTemplate是用来获取或设置 GridView 控件中页导航行的自定义内容。代码实现如下:

<PagerTemplate>
<table width="100%">
   <tr>
      <td style="text-align: center">
           第<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="20px"></asp:TextBox>
<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-1"  CommandName="Page" Text="GO"></asp:LinkButton>
</td>
</tr>
</table>
</PagerTemplate>

((GridView)Container.Parent.Parent).PageIndex + 1获取当前控件显示的页面数;((GridView)Container.Parent.Parent).PageCount获取当前控件总的页面数;CausesValidation设置按钮提交时不执行验证;CommandArgument设置与关联的 CommandName 属性一起传递到 Command 事件处理程序的可选参数;CommandName设置命令名,该命令名与传递给 Command 事件的 Button 控件相关联。

后台GridView1_PageIndexChanging事件的实现

代码如下:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        //通过类型转换得到当前的gridview控件
        GridView gvw = (GridView)sender;
        if (e.NewPageIndex < 0)
        {
            TextBox PageNum = (TextBox)GridView1.BottomPagerRow.FindControl("txtNewPageIndex");
            int Pa = int.Parse(PageNum.Text);
            if (Pa <= 0)//如果前往分页的index小于或等于0则转向0
            {
                gvw.PageIndex = 0;
            }
            else
            {
                gvw.PageIndex = Pa - 1;
            }
        }
        else
        {
            gvw.PageIndex = e.NewPageIndex;
        }
        bind();//自定义的GridView控件绑定数据函数
    }


  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
如何实现gridview分页,GridView控件实现分页技术教程

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>


  用户登录