.NET人字拖
万丈高楼平地起,我正在努力筑地基...
随笔- 133  文章- 0  评论- 606 
博客园  社区  首页  新随笔  联系  管理  订阅 订阅

[GridView控件]自定义分页

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

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

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

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

28            CurrentPage.Value = pageIndx.ToString();
29            NewsGrid.DataSource = NewsManager.GetNews(pageIndx , pageSize).Entities;
30            NewsGrid.DataBind();
31        }
 
  是不是很简单啊,看了代码就都懂了,关于用按钮传参数在这里就不多说了,还有一个就是Entities属性,在<<应用实体类EntitySet实现类似的范型功能 >>这篇文章中可以找到!

关于作者:网魂小兵

文章出处:http://xdotnet.cnblogs.com

本文可以随意转载,摘抄等非商业用途。

为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处。

绿色通道:好文要顶关注我收藏该文与我联系
posted @ 2006-09-29 00:00 网魂小兵 阅读(14980) 评论(31) 编辑 收藏
2127710
#1楼难掩真风雅       在2007-03-21 10:35说:
NewsManager.GetNews 放哪了?
 回复 引用 查看   
#2楼小兵[未注册用户] 在2007-03-21 10:38说:
@难掩真风雅

这个是从逻辑层调用过来的;对于分层的项目比较适用!

 回复 引用   
#3楼过客[未注册用户] 在2007-04-10 12:42说:
CurrentPage.Value这个从那里来的???
 回复 引用   
#4楼nech[未注册用户] 在2007-05-27 21:13说:
NewsManager.GetNews(0, pageSize).TotalRecords 从哪里来的?
 回复 引用   
#5楼[楼主]网魂小兵       在2007-05-27 23:06说:
@nech
这个从逻辑层闯过来的。

 回复 引用 查看   
#6楼j[未注册用户] 在2007-08-06 09:58说:
好白痴的东西
 回复 引用   
#7楼wlzzz[未注册用户] 在2007-10-20 14:22说:
你这代码哪来的?
 回复 引用   
#8楼Saith[未注册用户] 在2007-11-05 22:13说:
能否给我说一下,newsManager吗?这里不是很明白,谢谢
zjw_0916@126.com

 回复 引用   
#9楼[楼主]网魂小兵       在2007-11-06 08:50说:
@Saith

这是N层架构里的逻辑层的一个方法类,你可以先熟悉一下三层架构,基本上就知道是怎么回事了。

 回复 引用 查看   
#10楼aaaaaa[未注册用户] 在2008-01-22 19:07说:
pageSize在哪里定义的啊 逻辑层的代码判断什么
需要访问数据库吗

 回复 引用   
#11楼jinjianjun[未注册用户] 在2008-03-19 16:53说:
--引用--------------------------------------------------
网魂小兵: @Saith

这是N层架构里的逻辑层的一个方法类,你可以先熟悉一下三层架构,基本上就知道是怎么回事了。
--------------------------------------------------------
我也是同样的问题,博主有空的话也请结合上面的例子讲一讲三层架构这方面的知识罢!

 回复 引用   
#12楼love_.net[未注册用户] 在2008-07-18 14:30说:
--引用--------------------------------------------------
nech: NewsManager.GetNews(0, pageSize).TotalRecords 从哪里来的?
--------------------------------------------------------

 回复 引用   
#13楼白连启       在2008-09-17 21:08说:
NewsManager,把这个类的代码也发出来好吗?谢谢
 回复 引用 查看   
#14楼totals[未注册用户] 在2008-11-25 10:07说:
totals
应该是记录总数吧..
这个也得做个方法拿过来哦.. 呵呵

 回复 引用   
#15楼Micro!雨       在2009-09-30 17:39说:
你代码都不全 你还发什么啊 真是的 有病
 回复 引用 查看   
#16楼superstar       在2009-12-21 13:31说:
楼主怎么不把工程直接放 上来呢,有时候代码不全人家很好好办呀
 回复 引用 查看   
#17楼没有你       在2011-06-17 09:55说:
只有逻辑层还是不行,没有数据访问层啊
 回复 引用 查看   
注册用户登录后才能发表评论,请 登录 或 注册,返回博客园首页。
首页博问闪存新闻园子招聘知识库
最新IT新闻:
· Chrome将给老机带来更快的3D绘图性能
· 在线支付创业公司Stripe获红杉资本等1800万美元的投资,公司估值达1亿美元
· 创新工场孵化公司磊友科技今天正式推出首款大型手机HTML5网页游戏《黎明帝国》
· 霍金的伟大与不幸
· Linux为什么成功?因为它的失败是免费的!
» 更多新闻...
最新知识库文章:
· 高级编程语言的发展历程
· 如何学习一门新的编程语言?
· 学习不同编程语言的重要性
· 为什么我喜欢富于表达性的编程语言
· 计算机专业的女生为什么要学编程
» 更多知识库文章...

China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
Copyright ©2012 网魂小兵
Name:
网魂小兵
Addr:
福建厦门
MSN:
myxbing#hotmail.com
昵称:网魂小兵
园龄:5年11个月
粉丝:23
关注:0

搜索

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签
  • 更多链接

我的标签

  • directx11(6)
  • direct3d 11(6)
  • 游戏编程(6)
  • c/c++(6)
  • vs2010(5)
  • wpf(4)
  • openssl(2)
  • direct3d坐标系(2)
  • vs2008(2)
  • xaml(2)
  • 更多

随笔分类(170)

  • AJAX(doc)(8)
  • ASP.NET(46)
  • C#3.0+(13)
  • C/C++(27)
  • CommunityServer(7)
  • Database(11)
  • Enterprise Library (7)
  • JavaScript(10)
  • ServerContols(7)
  • UML(1)
  • VC++/MFC(8)
  • WPF/SilverLight(6)
  • XNA Game(2)
  • 翻译(4)
  • 今天我当家(11)
  • 设计模式(2)

随笔档案(133)

  • 2012年2月 (3)
  • 2011年8月 (3)
  • 2011年7月 (7)
  • 2011年5月 (1)
  • 2011年4月 (2)
  • 2011年2月 (1)
  • 2010年1月 (1)
  • 2009年3月 (3)
  • 2009年1月 (8)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年11月 (4)
  • 2007年10月 (3)
  • 2007年9月 (9)
  • 2007年8月 (3)
  • 2007年7月 (2)
  • 2007年6月 (9)
  • 2007年5月 (9)
  • 2007年4月 (14)
  • 2007年3月 (6)
  • 2007年2月 (3)
  • 2007年1月 (15)
  • 2006年12月 (9)
  • 2006年11月 (2)
  • 2006年10月 (4)
  • 2006年9月 (7)

文章分类

  • Asp.Net(.NET)

I Like Links

  • ASP.NET
  • Codeplex
  • XNADevelopment

My Friend's Blog

  • 陆巍杰
  • 孙小雨
  • 探丫头
  • 网络安全&Linux

积分与排名

  • 积分 - 283912
  • 排名 - 248

最新评论

阅读排行榜

评论排行榜