文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
用动态属性和DataView实现DataGrid的双向排序

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
 DataGrid是ASP.NET中非常重要的一个控件。它能方便的让我们实现编辑、排序功能;但是排序功能默认的是升序(ASC),能不能让DataGrid同时实现升降序排列呢?这篇文章将给你一个比较好的解决方法。

下面的例子将告诉你如何给DataGrid动态添加sortexpression和sortdirection属性,并通过DataView使DataGird中的数据按照这两个属性排列。在这个例子中使用的DataGrid的sortexpression属性只需要在sortcommand事件中设置(和通常的排序一样),DataGrid的sortexpression 属性保存了最后一次用来排序的字段名称,DataGrid的sortdirection属性保存了最后一次用来排序的字段排列方式(“ASC”或者“DESC”)

页面设计:

1.在页面上添加一个DataGrid;

2.设置DataGrid的AllowSorting属性为True;

3.设置AutogenerateColumns属性为False;

4.添加要绑定的字段到DataGrid,并按照下表设置其属性。Sortexpression属性和数据库中数据表中的字段名保持一致。

我使用Northwind数据库中的Employees来说明这个例子。

DataTextField
HeaderTextSortExpression

EmployeeID
EmployeeID
EmployeeID

LastName
LastName
LastName

FirstName
FirstName
FirstName

Title
Title
Title

City
City
City

Country
Country
Country

程序代码设计:

1.在页面第一次被加载时给DATAGRID添加动态属性sortexpression和sortdirection;

2.给指定的字段的sortexpression和sortdirection赋值,在加载时初始化DataGrid的排序字段和排序方式;

3.得到dataset和dataview对象。设置dataview的sort属性为动态属性sortexpression和 sortdirection的连接字符串;

4.用dataview绑定datagrid;

5.当表头被点击时,触发datagrid的sortcommand事件;

6.得到sortcommand事件传递过来的sortexpression属性,并与datagrid的sortexpression属性比较;

7.如果找到相等的

a)先检查sortdirection属性;

b)Ifsortdirection属性等于“ASC”then

i.设置sortdirection属性的值等于“DESC”

c)Else

i.设置sortdirection属性的值等于“ASC”

d)EndIf

8.重复第3步

注意:当你运行下面的代码并点击同一列两次或者两次以上,此列的排列方式会自动根据现有的排列方式的反序排列。

下面的下面的代码将给你演示怎么使用DataGrid的动态属性和DataView对象。

C#Code:

privatevoidPage_Load(objectsender,System.EventArgse)

{

//在此处放置用户代码以初始化页面

if(!Page.IsPostBack)

{

if(DataGrid1.Attributes["SortExpression"]==null)

{

DataGrid1.Attributes["SortExpression"]="LastName";

DataGrid1.Attributes["SortDirection"]="ASC";

}

BindGrid();

}

}

privatevoidBindGrid()

{

SqlConnectionconn=newSqlConnection("server=localhost;uid=sa;pwd=sa;database=Northwind");

conn.Open();

SqlDataAdaptercmd=newSqlDataAdapter("select*fromEmployees",conn);

DataSetds=newDataSet();

cmd.Fill(ds,"Employees");

DataViewdv=newDataView();

dv=ds.Tables[0].DefaultView;

stringSortExpression=DataGrid1.Attributes["SortExpression"];

stringSortDirection=DataGrid1.Attributes["SortDirection"];

dv.Sort=SortExpression+""+SortDirection;

DataGrid1.DataSource=dv;

DataGrid1.DataBind();

}

privatevoidDataGrid1_SortCommand(objectsource,System.Web.UI.WebControls.DataGridSortCommandEventArgs e)

{

stringSortExpression=e.SortExpression.ToString();

stringSortDirection="ASC";

if(SortExpression==DataGrid1.Attributes["SortExpression"])

{

SortDirection=(DataGrid1.Attributes["SortDirection"].ToString() ==SortDirection?"DESC":"ASC");

}

DataGrid1.Attributes["SortExpression"]=SortExpression;

DataGrid1.Attributes["SortDirection"]=SortDirection;

BindGrid();

}

   -------------------------------------------------------------------------------------------
  上一篇:邮件发送测试页面
  下一篇:用PagedDataSource类实现DataList和Repeater分页
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号