以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  删除后事件有BUG  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=43586)

--  作者:instone
--  发布时间:2013/12/10 23:41:00
--  删除后事件有BUG

删除后事件中是否有BUG?

 

如果删除一行,CurrentTable.Rows.Count  是正确的,

 

但是,如果删除两行,CurrentTable.Rows.Count  则是零?

 

以下代码中的FOR循环,在删除一行时正常工作,

 

但是在删除多行时,则不工作?

 

后发现,在删除多行后,当前表的行数取不到了,变成了零,

 

尽管并不是把所有行都删除!

 

 

If CurrentTable.Name="流程.流程" Then
   Dim n As Integer
   n=1
MessageBox.Show(CurrentTable.Rows.Count )
   For Each r As Row In  CurrentTable.Rows
        r("本级序号")=n 
       
       n=n+1
   Next
Else
End If


--  作者:Bin
--  发布时间:2013/12/11 8:28:00
--  
你的代码并没有删除行,看起来也没什么问题,不明白你的问题所在,最好能上个例子.
--  作者:instone
--  发布时间:2013/12/11 9:19:00
--  

我的代码是我针对DataRowDeleted 事件写的代码,

其中:

MessageBox.Show(CurrentTable.Rows.Count )
老师可以在任何一个表的

 

DataRowDeleted 事件中响应运行,会发现,在删除一行时,count值是正确的,但若同时删除两行以上,COUNT便不对了。


--  作者:Bin
--  发布时间:2013/12/11 9:27:00
--  
 使用 MessageBox.Show(e.DataTable.DataRows.Count)  就好了, 事件里尽量都使用E参数吧

Table可能还没来得及更新,所以获取的是0

--  作者:instone
--  发布时间:2013/12/11 10:02:00
--  

可是我要得到的是关联子表被删除多行后余下的行数,而datatable是整个表啊


--  作者:Bin
--  发布时间:2013/12/11 10:03:00
--  
 datarowdeleting 事件
MessageBox.show(e.DataRow.GetParentRow("表A").GetChildRows("表B").Count-1)