我需要将一个字段验证为邮政编码,并且我想使用FormItem
为我正在为其构建表单的表生成的-getter。没有生成“ GetZipCodeZipFormItem
” getter,但我注意到您可以使用该类FormItem
验证邮政编码。Validator
我只是用 my 手动添加它,DataModification
但我没有对从' 控件PostBackValueDictionary
获取值所需的引用。FormItem
如何将其验证FormItem
为邮政编码?
我需要将一个字段验证为邮政编码,并且我想使用FormItem
为我正在为其构建表单的表生成的-getter。没有生成“ GetZipCodeZipFormItem
” getter,但我注意到您可以使用该类FormItem
验证邮政编码。Validator
我只是用 my 手动添加它,DataModification
但我没有对从' 控件PostBackValueDictionary
获取值所需的引用。FormItem
如何将其验证FormItem
为邮政编码?
假设yourModObject.ZipCode
是一个字符串:
yourModObject.GetZipCodeFormItem(
true,
( value, label ) => new EwfTextBox( value ),
( control, pbv, subject, validator ) =>
validator.GetZipCode( new ValidationErrorHandler( subject ),
control.GetPostBackValue( pbv ),
true ).FullZipCode,
value: "",
validationList: yourDataModification )
另一种方法是:
yourModObject.GetZipCodeTextFormItem(
true,
true, // allow empty
value: "",
additionalValidationMethod: ( subject, validator ) =>
yourModObject.ZipCode = validator.GetZipCode( new ValidationErrorHandler( subject ),
yourModObject.ZipCode,
true ).FullZipCode,
validationList: yourDataModification )
第二种方法的一个缺点是主要验证(即在 mod 对象中存储值的逻辑)不知道输入的是邮政编码,因此,例如,如果您的数据库字段的限制为九个字符(以容纳 ZIP+4)并且用户输入“12345-1234”,主要验证将失败,因为破折号将字符串推过长度限制。您甚至不会使用其他验证方法。第一种方法不存在这个问题。