网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.DataGrid和DataList中CommandBut.
.浅谈DotNet 保护中的字符串加密技.
.小心!目录删除及重命名操作,一.
.ACCESS的ASP.NET中 如果 数据库操.
.关于ASP.NET调用JavaScript的实现.
.asp.net1.1 开发专用模板类.
.开发基于ASP.NET WebService的图.
..NET编程规范.
.关于.net中页面CSS样式丢失的解决.
.使用DES对称加密代码,支持中文.
.在Asp.Net中使用SmtpMail发送邮件.
.介绍几个ASP.NET中容易忽略但却很.
.部署ASP.NET(包含.net framework.
.用于.NET Compact Framework的强.
.优化ASP.NET应用程序性能研究与探.
.XML 自定义串行化.
.用ASP.NET 2.0 FormView控件控制.
.ASP.NET如何存取SQL Server数据库.
.实现FCKeditor 多用户分文件夹上.
.aspx网页以HTML形式存储的几个方.

GridView控件自定义分页详解

发表日期:2006-9-29


  前些天我写了关于 <<在存储过程中实现分页>>和<<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://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html

上一篇:在Asp.net的HttpCookie中写入汉字,读取时为乱码的解决方法! 人气:6184
下一篇:使用ASP.NET2.0的ReportViewer查看RDLC报表 人气:9559
浏览全部GridView控件的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐