GridView控件自定义分页详解

2016-02-19 20:16 52 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享GridView控件自定义分页详解,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

    在这里我们将用一个隐藏字段来保存这个PageIndex,即当前页码.当点击上一页时,将它的值减一,知道为0,要注意的一点这里的第一页页码是0而不是1.下面看看代码,然后我们再分析分析!
   1asp: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://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1623197.html

延伸阅读
有时我们在自定义控件时,出于某种原因的考虑(比如:防止在设计时误操作),想禁止调整自定义控件的尺寸(Height 或 Width)。最初我是这样实现的,这也是较简单的方法: public class MyButton : System.Windows.Forms.Button{... ... protected override void OnResize(EventArgs e) { this.Height = 23; this.Width = 75; }} 但是我对这...
在web开发中常常要使用js,为了提高效率一般都会制作js的类文件。这样在使用中更新复用都很方便。下面按照我工作中的一个案例,介绍如何定义js类文件制作自定义的控件。 一、设计需求 这个需求中,我们要制作一个,从webservice上获取一组学生成绩信息,然后在页面上按照及格与否显示出来。当然还要加上一些简单的互动效果。 按照MVC的设计,...
标签: Illustrator
Freehand 10 自定义画笔功能详解     用过Photoshop的人都知道它有个自定义笔触功能,能够很灵活地根据需要定制出形态各异的画笔,让人爱不释手。现在最新版本的Freehand也提供了类似的功能,感觉上比Photoshop更加强大些。灵活使用画笔功能可以大大提高绘画效率,而且还能减少文件体积,真有这么好吗?一起看看就知道了。 ...
标签: SQLServer
  分页存储过程代码如下: ALTER PROCEDURE [dbo].[Task_SelectPagedAndSorted] (     @ProjectID uniqueidentifier,     @ProjectAreaID uniqueidentifier,     @DepartmentID uniqueidentifier,     @ChiefID uniqueidentifier,     @State nvarchar(32), ...
《死侍》自定义键位心得完美自定义键位 方式1: Q作为传送反击键,鼠标左键轻击,右键重击,中键开枪,E键瞄准放大,R重装和互动,ZXC分别对应键盘的轻枪重,其他不变。 鼠标左键轻击,右键重击,中键开枪,这个几乎没什么可说的。 ZXC的定义是不想占用其他键位,再就是方便看刚开始了解连招,也比较形象和对称,有时还可以用来释放动...

经验教程

679

收藏

27
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部