我有一个充满数据的表,它有五列: id(varchar2)、描述(Varchar2)、直径(数字)、冠(数字)和锁定(单字符)
该表是内置到一个webapp应用程序,使用ASP-经典。表的顶部有一行,标头上有每个列的名称。当用户单击标题时,表将重新构建,根据他们单击的列进行排序,排序取决于前面的方向(就像网站上典型的排序按钮)。
我想要做的是:当用户单击id以外的任何行时,按他们单击的行排序()和按id (Id)排序,因为可以有数百条记录具有相同的描述值。
下面是我的代码片段,它决定了现在如何排序。
if Len(strSort) > 0 then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end ifstrSort从asp查询url中提取,并在单击url时添加到url中。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它按我想要的方式排序,但它不允许我切换排序方向。
发布于 2013-06-28 12:29:44
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()插件使它变得简单。
https://stackoverflow.com/questions/17364549
复制相似问题