我写了一个自定义的ASP.net控件,该控件从LinkButton下降并覆盖Render()方法。我正在使用它来替换正在处理的网站中的ImageButton,因此我们不必为每个按钮都有一个图像。自定义控件不会触发验证
该控制工作正常,是否需要后发等,但它不启动验证组中的验证器。这显然是一个问题。
该控件的代码是(浓缩)如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public class CustomButton : LinkButton
{
public string SpanCssClass { get; set; }
protected override void Render(HtmlTextWriter writer)
{
if (!Visible)
{
return;
}
writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID);
writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass);
string postback = string.IsNullOrEmpty(OnClientClick) ? "javascript:__doPostBack('" + UniqueID + "','');" : OnClientClick;
writer.AddAttribute(HtmlTextWriterAttribute.Href, postback);
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.AddAttribute(HtmlTextWriterAttribute.Class, SpanCssClass);
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.Write(Text);
writer.RenderEndTag();
writer.RenderEndTag();
}
}
有谁知道为什么会不会导致验证火?
我的印象是,将LinkButton中的所有其他方法置于未覆盖状态将使所有其他功能保持不变!
几乎正确。您错过了您需要将ValidationGroup属性添加到选项,否则,很好地播放! – 2010-06-29 10:32:24