以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]为啥新增行会触发DataRowLockedChanged事件?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86408)

--  作者:chen3728060
--  发布时间:2016/6/16 16:51:00
--  [求助]为啥新增行会触发DataRowLockedChanged事件?

我在表的DataRowLockedChanged事件设置了如下代码

 

If e.DataRow.Locked  Then
    MessageBox.show(1)
Else
    MessageBox.show(2)
End If

然后新增行时,会触发弹窗 2

 

但是帮助文档说了:

DataRowLockedChanged 行的锁定状态改变后执行。

我的行刚新建,还没修改锁定状态


--  作者:狐狸爸爸
--  发布时间:2016/6/16 16:53:00
--  
正常,新增行的锁定状态有从不确定改为确定的过程
--  作者:chen3728060
--  发布时间:2016/6/16 16:54:00
--  回复:(狐狸爸爸)正常,新增行的锁定状态有从不确定...

那我就是要加判断

e.datarow.rowstatus <> 4啦?


--  作者:大红袍
--  发布时间:2016/6/16 17:41:00
--  

只能这样变通

 

DataRowAdding

 

e.DataRow("第二列") = "123"

 

DataRowLockedChanged

 

If e.DataRow.RowState = DataRowState.Added AndAlso e.DataRow("第二列") = "123" Then
    e.DataRow("第二列") = Nothing
    Return
End If
If e.DataRow.Locked  Then
    MessageBox.show(1)
Else
    MessageBox.show(2)
End If


--  作者:chen3728060
--  发布时间:2017/7/10 16:30:00
--  

这样不行吗?我觉得思路是一样的,不是新增行就没事

 

If e.DataRow.RowState <> DataRowState.Added  Then
   If e.DataRow.Locked  Then
    MessageBox.show(1)
Else
    MessageBox.show(2)
End If<!--post.asp##回帖帖子循环部分-->
End If

 

我发现DatarowLoadChaned跟 dataColChanged的机制貌似一样,从不确定到确定状态,都会触发


[此贴子已经被作者于2017/7/10 16:31:12编辑过]

--  作者:有点甜
--  发布时间:2017/7/10 17:11:00
--  
 回复5楼,差不多,只要满足你要求就即可。