我们需要在第一个子表的表属性设置窗口中,设置表事件BeforeMenuCommandClick,写上下面这段代码
这主要是利用了BeforeMenuCommandClick事件可以根据实际需要取消掉默认命令的默认代码 的执行。
- Public Sub BeforeMenuCommandClick(sender As Object,e As sanMuSoft.CS.WinForm.GridMenuClickArgs)
- Dim tbl As SmGrid=CType(e.BaseGrid,SmGrid)
- '如果是新增行按钮
- If e.Command.Name=BaseGridMenuNames.Add OrElse e.Command.Name=BaseGridMenuNames.AddNews Then
- '如果有主表
- If tbl.Relation.ParentGrid IsNot Nothing Then
- '检查一下主表的所有数据有效性是否合规,包含:填充自动编码、填充修改时间、必填项、不能为空、数据唯一性等检查
- '参数false表示不必验证相应的子表数据有效性
- If tbl.Relation.ParentGrid.BaseBaseGrid.CheckDataRuleBeforeSave(False)=False Then '如果校验数据有效性失败
- '取消按钮的默认操作,不再执行新增命令
- e.Cancel=True
- Return
- End If
- End If
- End If
- End Sub
复制代码
|