懂asp.net3.5控件开发的牛人进!·
小弟最近正在看郑键兄写的 《asp.net3.5控件和组件开发技术》一书。才看到前面4张不到
目前参照本书的邮件验证控件 处于自己的想法,想修改一下这控件 可能小弟不才(或还没将此书看完) 不知道能不能实现
想把这个邮件验证控件的错误提示信息 改成光标离开此控件时判断如果填写的邮件格式错误则弹出JS提示输入格式错误。
请大家帮下忙
(之前此控件是点击按钮才能触发验证事件,而且提示的也是在文本框后面单独占一个TD列来显示提示信息)
本书代码--
/// <summary>
/// 建立子控件实例, 并设置默认值
/// </summary>
protected override void CreateChildControls()
{
//base.CreateChildControls();
this.Controls.Clear();//防止重复增加相同的子控件
daktext = new TextBox();
this.daktext.ID = "DakValue";//控件ID
this.daktext.Width = Unit.Pixel(100);//控件宽度
this.Controls.Add(daktext);//添加控件
dakrev = new RegularExpressionValidator();//验证表达式
this.dakrev.ID = "DakrevValue";
this.dakrev.ErrorMessage = "(<script>alert('输入格式错误!')</script>)";//验证失败时控件中显示的错误文本(这行我改过--源码是 this.dakrev.ErrorMessage = "[输入格式错误]";)
this.dakrev.Display = ValidatorDisplay.Static;//错误信息的显示内容
this.Controls.Add(dakrev);
this.ChildControlsCreated = true;//创建服务器控件(true)
}
/// 呈现
/// </summary>
/// <param name="writer">输出格式</param>
protected override void Render(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
//表格table标记开始
writer.RenderBeginTag(HtmlTextWriterTag.Table);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
this.daktext.RenderControl(writer);
writer.RenderEndTag();//td标记结束
//当用户设置正则表达式的值时,则显示两列
if (String.IsNullOrEmpty(this.DakValidateExpression) == false && this.DesignMode == false)
{
writer.RenderBeginTag(HtmlTextWriterTag.Td);
this.dakrev.RenderControl(writer);
writer.RenderEndTag();
}
writer.RenderEndTag();
writer.RenderEndTag();
return;
}