o 找到了 老师, 另外一个问题,第一个要是取消了,后面的for each 就会出错了,怎么能避免呢,还没想好
BeforeSaveDataRow
Dim e As object=args(0)
Dim bm As String=e.DataTable.name
Dim dt2 As DataTable
dt2 = Functions.Execute("loading","Z006配置列",0,"1=1")
Dim name As String
Dim fdr1 As List(of DataRow) = dt2.Select("表名='"& bm &"' And 是否必填=True")
Dim fdr2 As List(of DataRow) = dt2.Select("表名='"& bm &"' And 不允许重复=True")
If fdr1 IsNot Nothing Then
For Each dr1 As DataRow In fdr1
If e.DataRow(dr1("列名")) ="" OrElse e.DataRow(dr1("列名")).Contains(" ") OrElse e.DataRow(dr1("列名")) =Nothing Then '如果未输入内容
Dim Result As DialogResult
Result = MessageBox.Show(dr1("列名") & "列存在异常字符或为空,是否返回!","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
e.Cancel = True '则禁止退出编辑模式
Exit For
Else
e.DataTable.RejectChanges()
Exit For
End If
End If
Next
End If
’以下将会出错了,因为行没有了
If fdr2 IsNot Nothing Then
For Each dr2 As DataRow In fdr2
Dim dr As DataRow=e.DataTable.find(dr2("列名") & "='" & e.DataRow(dr2("列名")) & "'And _Identify <> '" & e.DataRow("_Identify") & "'")
If dr IsNot Nothing Then
Dim Result As DialogResult
Result =MessageBox.Show(e.DataRow(dr2("列名")) & "已经重复,是否返回!","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
e.Cancel = True
Exit For
Else
e.DataTable.RejectChanges()
Exit For
End If
End If
Next
End If
[此贴子已经被作者于2016/1/12 8:54:35编辑过]