以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 是不是 _Identify 列变动时,不会运行 DataColchanged 事件? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73099) |
-- 作者:cpayinyuan -- 发布时间:2015/8/12 14:18:00 -- 是不是 _Identify 列变动时,不会运行 DataColchanged 事件? 如题,我在表的DataColchanged 事件中,有以下代码: If e.datacol.name="_Identify" XXX end if
但是,当 _Identify列发生变化时(例如保存时它的值发生了变化),并不会运行这些代码。我想问一下,为什么呢?是不是 _Identify 列变动时,不会运行 DataColchanged 事件?是我这个版本不支持,还是一直就是这样设计的?(我现在用的是2012年的版本)
[此贴子已经被作者于2015/8/12 14:20:02编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/8/12 14:30:00 -- 不会触发dataColChanged事件。而且它的值,你是无法直接改的。
|
-- 作者:cpayinyuan -- 发布时间:2015/8/12 14:43:00 -- 是无法直接改,但保存的时候,它有可能会变化。 我请教一下,假如B表的第二列的值要等于A表的 _Identify列,如何处理才能达到目的?也就是说当保存表时,若A表的_Identify 列发生了变化,如何保证B列的第二列始终等于A表的_Identify列? |
-- 作者:大红袍 -- 发布时间:2015/8/12 14:45:00 -- 新增一行,也就是在DataRowAdded事件,执行 e.DataRow.Save |
-- 作者:cpayinyuan -- 发布时间:2015/8/12 15:16:00 -- 以下是引用大红袍在2015/8/12 14:45:00的发言:
新增一行,也就是在DataRowAdded事件,执行 e.DataRow.Save 这是另外一件事,不是解决刚才那个问题的办法。
并且,新增行时,有时候并不需要当时保存。
实际上解决方案很简单,只要贺老师开放 _Identify列的 Datacolchanged事件就可以了,我觉得这个没必要保护。 [此贴子已经被作者于2015/8/12 15:17:18编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/8/12 15:18:00 -- 保存后_Identify才能确定。不保存,除非你不要引用此列作为依据。 |
-- 作者:cpayinyuan -- 发布时间:2015/8/12 15:31:00 -- 以下是引用大红袍在2015/8/12 15:18:00的发言:
保存后_Identify才能确定。不保存,除非你不要引用此列作为依据。 目前的设计确实是这样。但实际工作中,的确有这种需求:不保存之前,也可能引用 _Identify列的数据。
我的建议也说了:
实际上解决方案很简单,只要贺老师开放 _Identify列的 Datacolchanged事件就可以了,我觉得这个没必要保护。 |
-- 作者:大红袍 -- 发布时间:2015/8/12 15:33:00 -- 没办法 |
-- 作者:cpayinyuan -- 发布时间:2015/8/12 15:44:00 -- 这是个小事,但增加了许多不必要的麻烦。我不知道别人是如何解决的。我希望贺老师关注一下,看能否改进一下! |
-- 作者:大红袍 -- 发布时间:2015/8/12 15:48:00 -- 新增行,保存,确定_Identify。
不然就这样处理 http://www.foxtable.com/help/topics/0194.htm
|