Foxtable(狐表)用户栏目专家坐堂 → [求助]如何移动当前行到指定行后面


  共有2478人关注过本帖树形打印复制链接

主题:[求助]如何移动当前行到指定行后面

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]如何移动当前行到指定行后面  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/19 16:24:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2016/12/19 16:30:00 [只看该作者]

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

 回到顶部