C# CustomValidator中的Render函数从何处获取属性?
我扩展了CustomValidator以插入一个C# CustomValidator中的Render函数从何处获取属性?,c#,asp.net,C#,Asp.net,我扩展了CustomValidator以插入一个标记,而不是CustomValidator使用的默认标记。我目前使用以下代码来完成此操作 public class MyValidator : CustomValidator { protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag("small"); base.Render(writer);
标记,而不是CustomValidator使用的默认
标记。我目前使用以下代码来完成此操作
public class MyValidator : CustomValidator
{
protected override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag("small");
base.Render(writer);
writer.RenderEndTag();
}
}
但是,这只是将
标记放在
标记中
<small>
<span
id="ContentPlaceHolder1_MainForm_CustomAliasValidator"
class="error"
style="visibility:hidden;">
Alias contains invalid characters.
</span>
</small>
别名包含无效字符。
因此,我似乎需要获取
标记的属性,并将它们注入
。但是,writer
是函数Render
中唯一可用的参数。据我所知,HtmlTextWriter
只是一个用于呈现html内容的类。base.Render()
从何处获取这些属性,以及如何在类中使用它们?的文档告诉我们它调用了,和。您只覆盖了Render
以输出包装标记,而不更改任何基本行为
您应该能够重写该属性以返回htmltextwittertag.Small
,从而将
更改为
标记
<small>
<span
id="ContentPlaceHolder1_MainForm_CustomAliasValidator"
class="error"
style="visibility:hidden;">
Alias contains invalid characters.
</span>
</small>
为了回答您的问题,
RenderBeginTag
(在您的案例中,它输出原始的
标记)首先调用which calls,然后这些属性将在下一次调用时显示,以谢谢。成功了!我一直认为Render
是继承自BaseValidator
的函数,但是BaseValidator
实际上覆盖了WebControl
中的函数,我没有注意到。顺便说一句,我想你拼错了RenderBeginTag
。