以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  是不是 _Identify 列变动时,不会运行 DataColchanged 事件?  (http://foxtable.com/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