以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- DataRow.ClearErrors失效 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63921) |
-- 作者:askbang -- 发布时间:2015/1/31 20:47:00 -- DataRow.ClearErrors失效 \'如下代码作为一个函数 checkEmpty,检查单元格是否有必填且未填数据的情况,有则设置错误标识 Dim tb As Table = Tables("主窗口_Table1") Dim cr As Row = tb.Current If cr Is Nothing Then Return Nothing End If cr.DataRow.ClearErrors() For Each tc As Col In tb.Cols Dim dr As DataRow = DataTables("表结构").Find("[表名] = \'员工信息表\' AND [字段名] = \'" & tc.Name & "\'") If dr IsNot Nothing Then \'如果找到的话 If dr("是否必填") = "是" AndAlso cr.IsNull(tc.Name) Then \'若为必填项,且没有默认值 cr.DataRow.SetError(tc.Name, "该单元格为必填项") End If End If Next \'如下代码作为保存数据前的校验程序 hasError Dim tb As Table = Tables("主窗口_Table1") Dim cr As Row = tb.Current If cr Is Nothing Then Return Nothing End If For Each tc As Col In tb.Cols If cr.DataRow.GetError(tc.Name) > "" Then Return True End If Next Return False 问题来了,保存前先执行 checkEmpty,如果有单元格为必填但没有数据时,能设置行错误标识,并且函数hasError返回True。可是当都填上数据后执行hasError依然返回True,并且执行hasError前界面上很明显已看到清除了错误标识,是否我没真正理解 cr.DataRow.ClearErrors() ????
|
-- 作者:Bin -- 发布时间:2015/2/2 8:02:00 -- cr.DataRow.SetError 你不是又设置了么? |