TextBoxHeight属性主要用来设置显示值的子控件TextBox的高度。与LabelHeight功能相似。
/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>
private Unit unitTextBoxHeight = Unit.Empty;
[Category("LabelTextBox")]
[Description("文本框宽度")]
public Unit TextBoxHeight
{
get
{
this.EnsureChildControls();
return this.tb.Height;
}
set
{
this.EnsureChildControls();
this.tb.Height = value;
}
}
ValidateExpression属性主要用来设置验证子控件的验证表达式,属性值为字符串类型。这里 是把验证子控件接口直接暴露给Field控件,比如,如果要验证一个表示输入邮件的字段,可以为 该属性设置值为:"\w+([-+.'']\w+)*@\w+([-.]\w+)* \.\w+([-.]\w+)*"(表示E-mail的正则表达 式)来验证用户输入值是否是合法E-mail格式。验证表达式不属于本书要介绍的内容,一般的 ASP.NET相关书籍都会有介绍。
/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>
[Category("LabelTextBox")]
[Description("验证表达式")]
public string ValidateExpression
{
get
{
this.EnsureChildControls();
return this.rev.ValidationExpression;
}
set
{
this.EnsureChildControls();
this.rev.ValidationExpression = value;
}
}
ErrorMessage属性主要是设置验证错误提示文本。当验证失败时,给用户警告或提示文本。
接下来定义创建子控件的方法CreateChildControls,代码如下:
/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>
[Category("LabelTextBox")]
[Description("错误提示")]
public string ErrorMessage
{
get
{
this.EnsureChildControls();
return this.rev.ErrorMessage;
}
set
{
this.EnsureChildControls();
this.rev.ErrorMessage = value;
}
}
protected override void CreateChildControls()
{
this.Controls.Clear();
lb = new Label();
this.lb.ID = "lbTitle";
this.lb.Width = Unit.Pixel(50);
this.Controls.Add(lb);
tb = new TextBox();
this.tb.ID = "tbValue";
this.tb.Width = Unit.Pixel(100);
this.Controls.Add(tb);
rev = new RegularExpressionValidator();
this.rev.ID = "revValidator";
this.rev.ControlToValidate = this.tb.ID;
this.rev.ErrorMessage = "[输入格式不正确!]";
this.rev.Display = ValidatorDisplay.Static;
this.Controls.Add(this.rev);
this.ChildControlsCreated = true;
}
此段代码的功能在3.7.1节已经作过介绍,主要是为前面定义的三个子控件创建实例,设置默认 属性,并依次添加到ControlCollection类型的属性this.Controls中。
注意方法一开始调用this.Controls.Clear();语句先清空集合,防止重复增加相同的子控件。 在方法最后这句 this.ChildControlsCreated = true;指定已经创建了子控件集合,当调用 |