以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]加入了代码之后,右键新增行,新增行不在最后一行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68110) |
||||
-- 作者:chnfo -- 发布时间:2015/5/10 12:40:00 -- [求助]加入了代码之后,右键新增行,新增行不在最后一行 请教各位有没有遇到一个问题 我在表中加了一些事件,比如datacolchanged,datacolchanging,drcell,currentchanged,beforadddatarow等。 新问题出来了: 我在表中空白处连续右键>新增行,这时候有奇怪的现象:新增的第一行排在第一行,新增的第二行排在第三行,新增的第三行排在第五行,再往后甚至是随机的。 请教各位狐神:什么事件会导致这个问题?如何解决呢? 我的目的很简单,就是希望新增的行总显示在最末一行。
[此贴子已经被作者于2015/5/10 13:23:40编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/5/10 14:50:00 -- 1、表格是否空值了排序?排序肯定不可能在最后一行。
2、找不到问题,就一个事件一个事件的注释掉代码,看哪里有问题;
3、再找不问题所在,就上传小例子 |
||||
-- 作者:chnfo -- 发布时间:2015/5/13 19:35:00 -- 有时候注释掉部分代码,增加行时在最后一行。 但是压缩项目,删除bin文件夹后,重启,增加行时又是随机出现位置。 要崩溃了……
[此贴子已经被作者于2015/5/13 19:35:55编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2015/5/13 20:08:00 -- 你的主键是文本型,将逐渐改为自动增量型。 |
||||
-- 作者:大红袍 -- 发布时间:2015/5/13 20:20:00 -- 你这样弄不对。你的ID列不要弄成主键列,SysID弄成主键列就行了。自动增量列必须做主键。
又或者是给 _Sortkey列赋值为一个表里最大的值 如 e.DataRow("_Sortkey") = 99999 |
||||
-- 作者:chnfo -- 发布时间:2015/5/13 21:49:00 -- 不用_identify做主键,是有原因的,因为要导出项目数据,再导入。如果用_identify做主键,导入的数据肯定会乱的。毕竟涉及到多表关联。 所以,只能用文本列作为主键 而用帮助里的自动生成编号的方法,效率非常之低,局域网应用完全不可接受,实际测试过,就算导入100行数据的EXCEL表,至少也要2.5分钟,这种效率肯定不行啊 [此贴子已经被作者于2015/5/13 21:50:46编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/5/13 21:53:00 -- 那你的id列不需要设置成主键啊 |
||||
-- 作者:chnfo -- 发布时间:2015/5/13 21:53:00 -- 不设主键就不会有问题了? |
||||
-- 作者:大红袍 -- 发布时间:2015/5/13 21:55:00 -- 你想一下,平常,自增的列是主键,如果 _Identify。那其它列你随便怎么改会不会有问题? |
||||
-- 作者:chnfo -- 发布时间:2015/5/13 22:01:00 -- 想不出来有会有什么问题。现在修改的不是identify这一列,它的作用只是辅助形成ID,仅此而已。 因为如果表中原来有数据的话,新增的行,不论其它列如何变化,identify(也就是这个表中的sysid)是不会发生变化的。
[此贴子已经被作者于2015/5/13 22:03:42编辑过]
|