为满足项目需要,在对查询结果需要点击对应的字段进行升降序可切换排序,这里对实现的过程整理一下思路:
实现效果大致如图所示:
表头“年龄”字段需要添加<a>标签,实现onclick事件:
<a onclick="GetUrl(1)" style="cursor:pointer">年龄<%if(strOrder=="1"){%><%=sortStr=="asc"?"↑":"↓"%><%}%><a>
url链接事件,其中用到对cookie的读写操作。
<script type="text/javascript"> //排序url链接事件 function GetUrl(order) { var oldSort=getCookie("sort"); setCookie("sort",oldSort=="asc"?"desc":"asc"); location.href='***.aspx?order='+order+其他分页等参数; } </script>
后台定义一个 protected string sortStr 用来保存排序类型,定义一个 protected string strOrder 用来保存排序字段。
获取排序的字段:strOrder=Request.QueryString["order"].Trim();
获取排序类型:
sortStr=GetSort(strOrder); public static string GetSort(string strOrder) { var sortStr=string.IsNullOrWhiteSpace(GetCookie("sort"))?"asc":GetCookie("sort"); if(!string.IsNullOrWhiteSpace(strOrder)) return sortStr; sortStr="asc"; AddCookie("sort","asc"); return sortStr; }
实现排序:
switch (strOrder) { case "1": sql += "order by age " + sortStr; break; default: sql += ""; break; }
本方法只是提供思路,具体还得根据项目进行使用。如有不足之处欢迎留言探讨。
相关阅读 >>
对比select * 和 select 所有字段写出速度实例
无法排序,原因是 icomparer.compare() 方法返回不一致的结果。一个值与本身比较不相等,或者一个值与另外一个值重复比较生成不同的结果
更多相关阅读请进入《字段》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。