以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  分页后排序不对  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176021)

--  作者:刘林
--  发布时间:2022/3/27 21:53:00
--  分页后排序不对
c="user"
Dim filter As String =""
If e.Values.containskey("SPXH") AndAlso e.values("SPXH")>""
    cmd.CommandText = "se/ect  * from {sp} where charindex(\'" & e.values("SPXH") & "\',xh)> 0  and kc>0 order by sjwz"
    filter="xh like \'%" & e.values("SPXH") & "%\' And kc>0"
Else
    cmd.CommandText = "se/ect *  from {sp} where kc>0  order by sjwz"
    filter="kc>0"
End If
Dim dt As DataTable = cmd.ExecuteReader()
If e.values.containskey("page") Then
dt.loadpage=e.values("page")-1
dt.loadtop=e.values("limit")
End If
dt.load
For Each dr As DataRow In dt.DataRows
    arr.add(new jobject)
    arr(i)("spm")=dr("spm").Tostring
    arr(i)("bh")=dr("bh").Tostring
    arr(i)("dj")=dr("dj").Tostring
    arr(i)("dw")=dr("dw").Tostring
    arr(i)("kc")=dr("kc").Tostring
    arr(i)("xh")=dr("xh").Tostring
    arr(i)("bz")=dr("bz").Tostring
    arr(i)("jj")=dr("jj").Tostring
    arr(i)("jfbn")=dr("jfbn").Tostring
    arr(i)("xp")=dr("xp").Tostring
    arr(i)("ID")=val(dr("_identify"))
    i=i+1
Next
Dim obj As new jobject
obj("code")=0
obj("msg")="ok"
obj("count")=val(dt.sqlcompute("count(*)",filter))
obj("data")=arr
e.writestring(compressjson(obj))
e.Handled=True



请问老师,上面order by sjwz在执行sql时是对的,但用了分页加载后前端的顺序就与sjwz排序不一致了,请问该如何改,谢谢

--  作者:有点蓝
--  发布时间:2022/3/27 22:13:00
--  
For Each dr As DataRow In dt.DataRows
改为
For Each dr As DataRow In dt.select("","sjwz")

--  作者:刘林
--  发布时间:2022/3/27 22:48:00
--  
按上改了不是不行,另外我查了下sql执行的_sortkey 值为什么是小数呢,跟这个有关吗
sjwz列是整数列
1
2
3
4
5
6
7
8
9
10


但前端的顺序是
1
8
9
2
。。

没看是什么原因

--  作者:有点蓝
--  发布时间:2022/3/27 23:27:00
--  
按2楼的方法改,json肯定是按照sjwz排序的。如果不行,那是前端处理的问题了
--  作者:刘林
--  发布时间:2022/3/28 11:39:00
--  
是按2楼改的
--  作者:有点蓝
--  发布时间:2022/3/28 11:53:00
--  
那就是前端显示数据的问题了
--  作者:刘林
--  发布时间:2022/3/28 12:22:00
--  
sql 中查看_sortkey 为1.9,1.92,9.88等与这个结果有关不?
--  作者:有点蓝
--  发布时间:2022/3/28 13:31:00
--  
dt.select("","sjwz")不会受其他列影响
--  作者:刘林
--  发布时间:2022/3/28 21:58:00
--  
老师,我用将 sqlreplacefor("_sortkey","sjwz","",true)现在可以了,是什么情况
--  作者:有点蓝
--  发布时间:2022/3/28 22:21:00
--  
这要提供实例测试才知道了