以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  排序问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=3352)

--  作者:forwork
--  发布时间:2009/6/29 11:33:00
--  排序问题
   请问,我通过按钮来增加一行,添加这行要显示到最前面,并且“日期”列显示当前的日期,“报告人”列显示当前登陆的用户。该怎么写.......
--  作者:狐狸爸爸
--  发布时间:2009/6/29 11:39:00
--  
你按照编号倒序排列即可,因为新增行的编号通常最大,倒序的话,就排在前面了?
不过新增行有必要这样吗,数据本来就是无序的,只是根据某列排序而已。


至于默认值,两个方法,以下内容来自帮助:

DataRowAdding



增加一行时执行,此时新增行(DataRow)已经创建,但并未真正增加到DataTable中,通常在此处对新增行进行默认值的设置。

e参数属性: 



DataTable:返回增加行的数据表。
DataRow:  返回新增加的行。



示例一



例如希望新增行的日期设为当前系统日期,姓名设为当前登录用户名,可以将DataRowAdding事件的代码设置为:


e.
DataRow("日期") = Date.Today()
e.
DataRow("报告人"
) = User.Name



Initialize


数据已经加载,所有的DataTable都已经生成,即将生成Table和窗口的时候执行,通常在此添加全局变量,以及针对DataTable的初始化设置。



例如希望某个表新增行的日期设为当前系统日期,姓名设为当前登录用户名,例如将Initialize事件代码设为:


DataTables
("表名").DataCols("日期").DefaultValue = Date.Today()
DataTables("表名").DataCols("报告人").DefaultValue = User.Name


--  作者:forwork
--  发布时间:2009/6/29 16:51:00
--  
请问我增加一行:Dim dr As DataRow
dr=DataTables("gcjd").AddNew()
dr("日期") = Date.Now
dr("报告人")= User.Name 怎样让增加的行都显示到最前面(按时间排序)。在这代码之上怎么加。

--  作者:狐狸爸爸
--  发布时间:2009/6/29 17:04:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目121.table

[此贴子已经被作者于2009-6-29 17:05:30编辑过]

--  作者:forwork
--  发布时间:2009/6/29 17:10:00
--  
万分感谢!!! 但是我的版本低了不能打开。还要升级了多
--  作者:forwork
--  发布时间:2009/6/29 17:46:00
--  
谢了。。但是这个有个问题 :当数据多了以后(出现滚动条时),添加一行后当前数据行位置在最后,不在最前面
--  作者:狐狸爸爸
--  发布时间:2009/6/30 7:11:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目121.table


--  作者:forwork
--  发布时间:2009/6/30 16:54:00
--  

我觉得这个始终还是存在bug,当选中列名添加的时候指向始终是在最后面。图片点击可在新窗口打开查看