以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何移动当前行到指定行后面  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94236)

--  作者:chnfo
--  发布时间:2016/12/19 16:13:00
--  [求助]如何移动当前行到指定行后面
表中有几列,ID,WZ

希望在WZ列输入某一行的ID后,就将它移到指定ID行的后面。

例如ID分别为1,2,3,4,……
如果将第一行的WZ输入4,就将这一行移到ID=4的这一行后面

[此贴子已经被作者于2016/12/19 16:14:21编辑过]

--  作者:chnfo
--  发布时间:2016/12/19 16:24:00
--  
想了个笨办法。先把这一行移到最末一行去,然后再把它移回来。但是问题是:如果多人同时操作这个表,麻烦就来了。
            Dim n As Integer = Tables("A").Rows.Count
            Dim bid As Integer = Tables("A").FindRow(e.DataRow)
            Tables("A").Rows(bid).Move(n - 1)
            Dim dr As DataRow = e.DataTable.Find("ID = \'" & e.DataRow(”ID”) & "\'")
            If dr IsNot Nothing Then
                Dim wz As Integer = Tables("A").FindRow(dr)
                If wz >= 0 Then
                    Tables("A").Rows(n - 1).Move( wz + 1)
                End If
            End If
[此贴子已经被作者于2016/12/19 16:24:12编辑过]

--  作者:有点色
--  发布时间:2016/12/19 16:24:00
--  

 有必要这样做吗?只需要根据id列排序就好了。

 

 你也可以找到id等于4的那一行,得到 sortkey 值,然后加上0.001,这样也行。


--  作者:chnfo
--  发布时间:2016/12/19 16:30:00
--  
这里说1234只是一个例子,实际ID是自动生成的字符串。
不过你说的是好方法 
[此贴子已经被作者于2016/12/19 16:36:00编辑过]