Foxtable(狐表)用户栏目专家坐堂 → [求助]DataColChanged和DataColChanging


  共有2286人关注过本帖树形打印复制链接

主题:[求助]DataColChanged和DataColChanging

帅哥哟,离线,有人找我吗?
poiokm26
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:165 积分:1431 威望:0 精华:1 注册:2015/12/7 19:14:00
[求助]DataColChanged和DataColChanging  发帖心情 Post By:2016/2/7 21:29:00 [只看该作者]

正学到事件编程部份,自己试了几个代码.发现DataColChanged的代码放到DataColChanging中运行得到的效果是相同的.
希望能介绍几个例子或贴子让我更多了解一下.
另外:大家新年快乐!

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/2/12 9:03:00 [只看该作者]

知道DataColChanging是在数据写入单元格之前触发,而DataColChanged是在数据写入单元格之后触发的就行。

一般DataColChanging多用来进行数据验证,可以通过e.Cancel = True取消数据写入

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/13 23:29:00 [只看该作者]

 DataColChanging事件的时候,修改的值并没有写入到表,只能用如 e.NewValue 获取,不能用如 e.DataRow("列名") 取得值。

 回到顶部
帅哥哟,离线,有人找我吗?
poiokm26
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:165 积分:1431 威望:0 精华:1 注册:2015/12/7 19:14:00
  发帖心情 Post By:2016/2/14 13:19:00 [只看该作者]

If e.DataCol.Name = "金额" Then
    If
e.NewValue = 0 Then
        e.NewValue =
Nothing
    End
if
End
If


这段代码如果在DataColChanged运行就不起作用,DataColChanging运行正常


但是在DataColChanging中改动一下

If e.DataCol.Name = "金额" Then

    If e.dataRow("金额") = 0 Then
        
e.dataRow("金额") = Nothing
    End
 if
End
 If

这时就运行的起来就会死机退去.个人理解为: e.NewValue 跟 e.dataRow("金额") = Nothing 发生冲突.
但这段改动过的代码放在DataColChanged中运行就起作用了.

老师还有没有补充..?





 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/15 9:19:00 [只看该作者]

1、在ed事件里,不能再修改newvalue的值了。

 

2、在ing事件里,尽量不要用 e.DataRow("当前触发的列名")


 回到顶部