动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 字段的排序

作者来源: 
阅读 数 223 人次 , 2006-3-29 4:30:00 


要支持排序功能,只要将datagrid web 控件的allowsorting 属性设为true,并且指定要排序时所要执行的程序为何即可。下列范例支持排序的功能,使用者可以点选欲排序的字段,该字段数据即以升幂方式排列;若再点选该字段一次,则该字段改成以降序的方式排列:

<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<!--#include file="gettable.inc"-->
<html>
<form runat="server">
<asp:datagrid id="dga" allowpaging="true" pagesize="10"
onpageindexchanged="dga_pagechg" runat="server"
pagerstyle-mode="numericpages" bordercolor="#808080"
headerstyle-font-names="courier new"
headerstyle-backcolor="#d1dceb"
headerstyle-horizontalalign="center"
allowsorting="true" onsortcommand="dga_sort">
</asp:datagrid>
<asp:textbox id="txthidden" runat="server" visible="false"
enabled="false"/>
</form>
<script language="vb" runat="server">
dim dtdatatable as datatable=gettable("ch08\myweb.mdb", "members")
sub page_load(sender as object, e as eventargs)
if page.ispostback=false then
txthidden.text="username"
dga.datasource=dtdatatable.defaultview
page.databind()
end if
end sub
sub dga_pagechg(sender as object, e as datagridpagechangedeventargs)
if txthidden.enabled=true then
dtdatatable.defaultview.sort=txthidden.text
else
dtdatatable.defaultview.sort=txthidden.text & " desc"
end if
dga.datasource=dtdatatable.defaultview
page.databind()
end sub
sub dga_sort(sender as object, e as datagridsortcommandeventargs)
if txthidden.enabled=false then
dtdatatable.defaultview.sort=e.sortfield
else
dtdatatable.defaultview.sort=e.sortfield & " desc"
end if
txthidden.enabled=not txthidden.enabled
txthidden.text=e.sortfield
dga.datasource=dtdatatable.defaultview
page.databind()
end sub
</script>
</html>

由于datagrid web 控件并不会自动排序数据,所以我们藉由onsortcommand 事件程序来修 改datatable.defaultview 的sort 属性。由于换页的时候原来的排序状况无法保留,所以我们 透过一个textbox web 控件,并将其visible 属性设为false 来帮我们保持排序的状况。其中 textbox 的text 属性用来记录所要排序的字段名称,而enabled 属性用来表示排序的方式是升 幂还是降序。其执行结果如图所示:


第一次点选时以升幂方式排序


第二次点选时以降序方式排序
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:「主/明细」资料表
· 下一篇:DataGrid Web 控件的进阶应用--使用Template 的数据更新
· ASP.NET连SQL7接口源代码
· 用asp.net和xml做的新闻更新系统(1)
· ASP.NET发送ICQ消息DIY
· ASP.NET 数据访问类
· jdbc3中的RowSet 接口规范 


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077