【发布时间】:2015-01-04 15:43:32
【问题描述】:
我扩展了我的文本框控件,为日期格式添加了正则表达式验证器。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Myapplication.App_Code
{
public class DateTextBox : TextBox
{
private RegularExpressionValidator regexval;
public string InvalidDate="Incorrect date format, must be dd/mm/yyyy";
public string ClientScript = "true";
protected override void OnInit(EventArgs e)
{
regexval = new RegularExpressionValidator();
regexval.ControlToValidate = this.ID;
regexval.ErrorMessage = this.InvalidDate;
regexval.EnableClientScript = (this.ClientScript.ToLower() != "false");
regexval.ValidationExpression = "^(0[1-9]|[12][0-9]|3[01])[-/.](0[1-9]|1[012])[-/.](19|20)\\d\\d$";
//regexval.Text = "*Incorrect date format";
regexval.ForeColor = System.Drawing.Color.Red;
regexval.ValidationGroup = "Tab1";
Controls.Add(regexval);
base.OnInit(e);
}
protected override void OnPreRender(EventArgs e)
{
Attributes.Add("placeholder", "dd/mm/yyyy");
base.OnPreRender(e);
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
regexval.RenderControl(writer);
}
}
}
如果动态添加的正则表达式验证失败,我需要触发一些事件来更改文本框的颜色。到目前为止,我只能在使用开箱即用属性无效时显示“文本”属性或“错误消息”。
【问题讨论】: