以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  修改标记功能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23688)

--  作者:SZDVYE
--  发布时间:2012/9/16 23:54:00
--  修改标记功能

狐狸爸爸:

我在DREWCELL中加入

If e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then
    e.Style = "修改"
End If

并设置了自定义样式,希望达到用白底红字标出那些已经被修改过的单元格后,在表中增加行时出现以下提示出错,请问怎么解决?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120916234626.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120916234636.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/9/17 8:44:00
--  

bug,新增行没有OriginalValue,这么改一下:

 

dim dr as datarow = e.Row.DataRow.

If dr.RowState = DataRowState.Modified AndAlso dr(e.Col.Name) <> dr.OriginalValue(e.Col.Name) Then
    e.Style = "修改"
End If


--  作者:lin_hailun
--  发布时间:2012/9/17 8:55:00
--  
 或者,你可以认为新增行是空,不用OriginalValue来比较。

 又或者,你新增行的时候,把新增的行save一下。

 多种方案。

--  作者:SZDVYE
--  发布时间:2012/9/17 15:05:00
--  

终于遇到了BUG,谢谢。


--  作者:SZDVYE
--  发布时间:2012/9/17 15:09:00
--  

还是出现错误提示:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120917150622.jpg
图片点击可在新窗口打开查看


--  作者:mr725
--  发布时间:2012/9/17 15:32:00
--  
dim dr as datarow = e.DataRow
--  作者:SZDVYE
--  发布时间:2012/9/17 15:46:00
--  

还是不行啊?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120917150622.jpg
图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2012/9/17 16:10:00
--  
 测试了下,下面的代码不报错。
 

dim dr as datarow = e.Row.DataRow.

If dr.RowState = DataRowState.Modified AndAlso dr(e.Col.Name) <> dr.OriginalValue(e.Col.Name) Then
    e.Style = "修改"
End If


--  作者:SZDVYE
--  发布时间:2012/9/17 23:17:00
--  

这样啊,我的表测试不行,能帮我指出吗?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120917231238.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar


--  作者:lin_hailun
--  发布时间:2012/9/17 23:36:00
--  
 代码多了一个点,楼主应该自己可以化解的吧。

 

dim dr as datarow = e.Row.DataRow.

If dr.RowState = DataRowState.Modified AndAlso dr(e.Col.Name) <> dr.OriginalValue(e.Col.Name) Then
    e.Style = "修改"
End If