我有一个充满数据的表,它有五列:id(varchar2),description(varchar2),dc(number),crown(number)和lockout(单个char)
该表内置于使用ASP-classic制作的webapp中。该表的顶部有一行,标题包含每列的名称。当用户单击标题时,表将重建,按照他们单击升序或降序的列进行排序,具体取决于之前的方向(如网站上的典型排序按钮)。
我想要发生的事情是:当用户点击除了以外的任何行时,按照他们点击 和 的行按ID排序,例如,因为可能有数百条记录具有相同的描述值。
以下是我的代码片段,用于确定如何排序。
if Len(strSort) > 0 then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end if
strSort
从asp查询网址中提取,并在点击时添加到网址中。 intSortDir
基本上被初始化为0,并在用户点击标题时切换。
总结一下,我的问题是,如何一次按两列排序,单击一列作为主要排序。
我试过了:
if Len(strSort) > 0 then
if strSort = "id" then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
else
sqlQry = sqlQry + " ORDER BY " & strSort & ",id"
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end if
end if
它按照我想要的方式排序,但它不会让我切换排序方向。
答案 0 :(得分:1)
if Len(strSort) > 0 then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
if strSort <> "id" then
sqlQry = sqlQry + ", id"
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end if
end if
另外,使用javascript在浏览器中对这些行进行排序可能会更好。如果你可以使用jQuery,那么有一个tablesorter()插件可以让它变得简单。