1

我已经FormItem针对我的 SQL 数据库中的表生成了 s。我正在查看FormItem为 my 生成的 s ,TableModification并注意到一个有趣的可选参数Action validationErrorNotifier

如何使用这个参数,它带来什么好处?

4

1 回答 1

1

假设您有一个包含两个电话号码字段的表单。假设您希望Validation在两个电话号码的区号不匹配时产生错误。您可以将该validationErrorNotifier参数与 a 结合使用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
    )
) );
于 2012-10-12T22:17:40.850 回答