[GridView控件]自定义分页-阿里云开发者社区

开发者社区> 文艺小青年> 正文

[GridView控件]自定义分页

简介:
+关注继续查看
前些天我写了关于 <<在存储过程中实现分页>>和<<GridView控件事件详解 >> ,后来又有一些人问我怎样在GridView中应用这个东东!其实很简单,主要是怎么保存当前页面的页码PageIndex问题,不过把这个解决了什么都好办了.因为在分页过程中:PageSize是一定的,我们可以用一个属性来表示.保存PageIndex好多中方法,而且数据不是很庞大,基本不会好太多的资源.还是一句老话,话再多都没有例子直观.

  在这里我们将用一个隐藏字段来保存这个PageIndex,即当前页码.当点击上一页时,将它的值减一,知道为0,要注意的一点这里的第一页页码是0而不是1.下面看看代码,然后我们再分析分析!
 1None.gif<asp:GridView ID="NewsGrid" runat="server" AutoGenerateColumns="False" AllowPaging="false" Width="100%">
 2None.gif            <Columns>
 3None.gif                <asp:BoundField DataField="NewsId" HeaderText="新闻ID"/>
 4None.gif                <asp:HyperLinkField DataNavigateUrlFields="NewsId" DataNavigateUrlFormatString="~/Details.aspx?ID={0}"
 5None.gif                    DataTextField="Title" HeaderText="新闻标题"  ItemStyle-Width="70%"/>
 6None.gif                <asp:BoundField DataField="PostTime" HeaderText="发布时间"/>
 7None.gif                <asp:CommandField HeaderText="新闻管理" ShowCancelButton="False" ShowDeleteButton="True"
 8None.gif                    ShowEditButton="True"/>
 9None.gif            </Columns>
10None.gif        </asp:GridView>
11None.gif        <div style=" height:16px; padding-top:5px; margin-right:30px; float:right">
12None.gif        <asp:HiddenField ID="CurrentPage" runat="server" Value="0"/>
13None.gif        <asp:LinkButton ID="First" runat="server" CommandArgument="first" OnClick="PagerButton_Click">首 页</asp:LinkButton>
14None.gif        <asp:LinkButton ID="Prev" runat="server" CommandArgument="prev" OnClick="PagerButton_Click">上一页</asp:LinkButton>
15None.gif        <asp:LinkButton ID="Next" runat="server" CommandArgument="next" OnClick="PagerButton_Click">下一页</asp:LinkButton>
16None.gif        <asp:LinkButton ID="Last" runat="server" CommandArgument="last" OnClick="PagerButton_Click">尾 页</asp:LinkButton>
17None.gif        </div>
  CS文件中的代码:
 1None.gif        protected void PagerButton_Click(object sender, EventArgs e)
 2ExpandedBlockStart.gif        {
 3InBlock.gif            int pageIndx = Convert.ToInt32(CurrentPage.Value);
 4InBlock.gif            int totals = NewsManager.GetNews(0, pageSize).TotalRecords;
 5InBlock.gif            int pages = (totals % pageSize) == 0 ? (totals / pageSize) : (totals / pageSize + 1);
 6InBlock.gif            string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();
 7InBlock.gif            switch (arg)
 8ExpandedSubBlockStart.gif            {
 9InBlock.gif                case "prev":
10InBlock.gif                    if (pageIndx > 0)
11ExpandedSubBlockStart.gif                    {
12InBlock.gif                        pageIndx -= 1;
13ExpandedSubBlockEnd.gif                    }

14InBlock.gif                    break;
15InBlock.gif                case "next":
16InBlock.gif                    if (pageIndx < pages - 1)
17ExpandedSubBlockStart.gif                    {
18InBlock.gif                        pageIndx += 1;
19ExpandedSubBlockEnd.gif                    }

20InBlock.gif                    break;
21InBlock.gif                case "last":
22InBlock.gif                    pageIndx = pages - 1;
23InBlock.gif                    break;
24InBlock.gif                default:
25InBlock.gif                    pageIndx = 0;
26InBlock.gif                    break;
27ExpandedSubBlockEnd.gif            }

28InBlock.gif            CurrentPage.Value = pageIndx.ToString();
29InBlock.gif            NewsGrid.DataSource = NewsManager.GetNews(pageIndx , pageSize).Entities;
30InBlock.gif            NewsGrid.DataBind();
31ExpandedBlockEnd.gif        }
  

  是不是很简单啊,看了代码就都懂了,关于用按钮传参数在这里就不多说了,还有一个就是Entities属性,在<<应用实体类EntitySet实现类似的范型功能 >>这篇文章中可以找到!


本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10092 0
UpdatePanel中GridView的分页问题
项目中在UpdatePanel范围内加入了一个GridView控件。如果此页面初始化有数据时,分页效果一切正常。但是当初始化时没有数据,页面中点击按钮加载数据后,再点分页数字时报异常:“Microsoft JScript 运行时错误: 缺少对象”经多方请教,几经周折后,终于搞定这个问题。
777 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
WinForm DataGridView分页功能
WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件   .CS: 1 using System; 2 using System.
922 0
手动绑定SQLDataSource到GridView后分页的问题(转)
由于GridView的数据源是后台CS文件中代码绑定的。所以程序运行时,点击分页数后没有反应。解决办法如下: using System;using System.Data;using System.Configuration;using System.
684 0
Struts2获取easyUI datagrid 分页参数page和rows
Struts2获取easyUI datagrid 分页参数page和rows   用pageHelper分页时,只要是能够获取前台传来的两个参数page和rows基本就完成了很大一部分。 获取方法:定义两个变量page和rows,设置对应的getter,setter方法,在方法中直接获取就能打得。
1176 0
gridview自定义button事件 ,无法触发 onrowcommand
如题。 原因:按钮button有回传事件,当点击button,页面回传,已经将原来的页面的事件冲掉了。   解决方法: 1方法:  Page_Load方法里,添加if(!ispostback){//绑定gridview的值}   2方法:去掉button的回传事件,添加一个属性:UseS...
625 0
3576
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载