为满足项目需要,在对查询结果需要点击对应的字段进行升降序可切换排序,这里对实现的过程整理一下思路:
实现效果大致如图所示:
表头“年龄”字段需要添加<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;
}
本方法只是提供思路,具体还得根据项目进行使用。如有不足之处欢迎留言探讨。
相关阅读 >>
无法排序,原因是 icomparer.compare() 方法返回不一致的结果。一个值与本身比较不相等,或者一个值与另外一个值重复比较生成不同的结果
对比select * 和 select 所有字段写出速度实例
更多相关阅读请进入《字段》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。