我已经针对SQL数据库中的表生成了FormItem
。我正在查看FormItem
生成的TableModification
,我注意到一个有趣的可选参数Action validationErrorNotifier
。
如何使用此参数以及它带来了哪些好处?
答案 0 :(得分:1)
假设您有一个包含两个电话号码字段的表单。如果两个电话号码没有匹配的区号,那么假设您希望后续Validation
产生错误。您可以将validationErrorNotifier
参数与bool
结合使用,以确保只有当两个电话号码都有效时才执行后续Validation
:
var phonesInvalid = false;
var stack = ControlStack.CreateWithControls(
myTableMod.GetPhone1FormItem( ..., validationErrorNotifier: () => phonesInvalid = true, validationList: myDataMod ).ToControl(),
myTableMod.GetPhone2FormItem( ..., validationErrorNotifier: () => phonesInvalid = true, validationList: myDataMod ).ToControl()
);
formItemBlock.Add( FormItem.Create(
"Phone Numbers",
stack,
validationGetter: control => new Validation(
( pbv, validator ) => {
if( !phonesInvalid && myTableMod.Phone1.AreaCode != myTableMod.Phone2.AreaCode )
validator.NoteErrorAndAddMessage( "Area codes must match." );
},
myDataMod
)
) );