如何通过构造函数实现动态的RegularExpressionValidator
本文关键字:RegularExpressionValidator 动态 实现 何通过 构造函数 | 更新日期: 2023-09-27 18:12:05
我正在构建一个自定义控件,它简单地继承了RegularExpressionValidator。在构造函数中,我需要能够看到控件的viewstate值是什么,以便在构造过程中使用该值来确定需要使用哪个验证表达式。
问题是构造函数在调用viewstate时没有访问权限。由于调用构造函数的时间,至少viewstate总是为空。
我已经尝试重写渲染方法,但由于某种原因,即使控件可以访问视图状态的基础。Validationexpression总是因为没有在构造函数中赋值而失败。
我所拥有的是一个查看视图状态的公共属性。
public NameType NameValidationType
{
get
{
return this.ViewState["NameType"] == null ? NameType.FirstName : (NameType)ViewState["NameType"];
}
set
{
this.ViewState["NameType"] = value;
}
}
该值在调用构造函数时始终为空。是否有某种方法可以延迟构造函数的执行,以便在构造之前从viewstate读取数据?
谢谢你的帮助。
我的解决方案是在OnPreRender事件中构建控件的validationexpression和其他属性。渲染太迟了,在OnPreRender之前的任何东西都没有访问viewstate。