以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何让新增行排在第一行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33892)

--  作者:dengzhihao
--  发布时间:2013/5/26 23:20:00
--  [求助]如何让新增行排在第一行?
默认新增一行是在最后显示的,如何让它在第一行显示?
--  作者:夕然
--  发布时间:2013/5/26 23:29:00
--  

使用插入行的功能。

 

 

CurrentTable.Position = 0
Syscmd.Row.Insert()


 


--  作者:dengzhihao
--  发布时间:2013/5/26 23:37:00
--  [求助]这关闭代码哪里出错啦?
谢啦!
[此贴子已经被作者于2013-5-26 23:42:16编辑过]

--  作者:程兴刚
--  发布时间:2013/5/26 23:41:00
--  
Tables("表A").AddNew()
Tables("表A").Current.Move(0)
Dim drs As List(of DataRow) = DataTables("表A").Select("","[_SortKey]")
For i As Integer = 0 To drs.Count - 1
    drs(i).BaseRow("_SortKey") = i
Next

--  作者:程兴刚
--  发布时间:2013/5/26 23:49:00
--  

或者:

DataRowAdded事件代码:

 

Tables("表A").Rows(Tables("表A").Rows.Count-1).Move(0)
Dim drs As List(of DataRow) = DataTables("表A").Select("","[_SortKey]")
For i As Integer = 0 To drs.Count - 1
    drs(i).BaseRow("_SortKey") = i
Next

 

以上代码可永久性保持所新增的行在最前面,并按照顺序往下排!


--  作者:everybody
--  发布时间:2013/5/27 0:09:00
--  
学习
--  作者:unverse
--  发布时间:2013/5/27 0:30:00
--  

直接排列倒序排列 sortkey
不更简单嘛。。


--  作者:程兴刚
--  发布时间:2013/5/27 2:27:00
--  
我这是为了让楼主一次性做到永久排序!
--  作者:everybody
--  发布时间:2015/7/26 2:17:00
--  【请教】如何将程版的新增行自动为第一行的代码,改成全局表代码?

一下是程版的代码

-------------------

DataRowAdded事件代码:

 

Tables("表A").Rows(Tables("表A").Rows.Count-1).Move(0)
Dim drs As List(of DataRow) = DataTables("表A").Select("","[_SortKey]")
For i As Integer = 0 To drs.Count - 1
    drs(i).BaseRow("_SortKey") = i
Next


---------------


想改为全局表代码,即指定的表,在datarowadded时,才执行上述代码


想来是select的语句,如下示意,但如何改一下?


选定的表,新增的行自动排到第一行

Select Case e.Table.Name

    Case "表A"

        Tables("表A").Rows(Tables("表A").Rows.Count-1).Move(0)

        Dim drs As List(of DataRow) = DataTables("表A").Select("","[_SortKey]")

        For i As Integer = 0 To drs.Count - 1

            drs(i).BaseRow("_SortKey") = i

        Next

End Select




--  作者:大红袍
--  发布时间:2015/7/26 9:28:00
--  


Tables(e.DataTable.Name).Rows(Tables(e.DataTable.Name).Rows.Count-1).Move(0)

Dim drs As List(of DataRow) = e.DataTable.Select("","[_SortKey]")

For i As Integer = 0 To drs.Count - 1
   
    drs(i).BaseRow("_SortKey") = i
   
Next