最近在使用asp.net 2.0的gridview 控件时,发现排序与分页功能microsoft实现的都很简单,比如排序,在点击列名的时候来触发整页的postback,然后排序,但是在列头上没有一个显示升序降序的图标,这会让最终用户使用时很迷惑,因为不知道是升序了还是降序了,所以今天首先解决的第一问题就是升序降序在列上显示图标,第二要解决的问题是默认gridview按列排序只能排一列的,也就是不能进行多列排序,而在实际应用中仅仅按照一列来排序是不能满足业务需求的,第三是gridview 分页问题,gridview预定义的分页页码显示,比较简单,而实际应用中,分页可能不是只显示首页,上一页,下一页,末页,或者是数字的页码那么简单,应该更需要,跳转,当前的页码,总页数等,更详尽的信息。
第一:gridview 多列排序与排序图标显示
首先我们可以新建一个类库程序,主要需要引用system.web.dll文件
然后新建一个类,这个类继承与gridview控件,我们只需要对部分方法进行重新即可。
我的演示的例子,采用了单列排序,如果启用多列排序,把控件的allowmulticolumnsorting设置为true就是
多列排序。
1 public class webgridview:gridview
2 {
3 属性#region 属性
4 /**//// <summary>
5 /// 是否启用或者禁止多列排序
6 /// </summary>
7 [
8 description("是否启用多列排序功能"),
9 category("排序"),
10 defaultvalue("false"),
11 ]
12 public bool allowmulticolumnsorting
13 {
14 get
15 {
16 object o = viewstate["enablemulticolumnsorting"];
17 return (o != null ? (bool)o : false);
18 }
19 set
20 {
21 allowsorting = true;
22 viewstate["enablemulticolumnsorting"] = value;
23 }
24 }
25 /**//// <summary>
26 /// 升序时显示图标
27 /// </summary>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器