Asp.net Validator.RenderControl返回一个空字符串
我已经面临以下问题,并与之斗争了近2天。 我有以下代码Asp.net Validator.RenderControl返回一个空字符串,asp.net,custom-controls,render,Asp.net,Custom Controls,Render,我已经面临以下问题,并与之斗争了近2天。 我有以下代码 protected override void Render(HtmlTextWriter writer) { string controlOutput; string validatorOutput; string allOutput; StringWriter controlStringWriter = new StringWriter();
protected override void Render(HtmlTextWriter writer)
{
string controlOutput;
string validatorOutput;
string allOutput;
StringWriter controlStringWriter = new StringWriter();
HtmlTextWriter controlHtmlWriter = new HtmlTextWriter(controlStringWriter);
StringWriter validatorsStringWriter = new StringWriter();
HtmlTextWriter validatorsHtmlWriter = new HtmlTextWriter(validatorsStringWriter);
base.Render(controlHtmlWriter);
controlOutput = controlStringWriter.ToString();
this.renderValidators(validatorsHtmlWriter);
validatorOutput = validatorsStringWriter.ToString();
allOutput = String.Format("{0} {1}", controlOutput, validatorOutput);
writer.Write(allOutput);
}
renderValidators函数是:
private void renderValidators(HtmlTextWriter writer)
{
foreach (BaseValidator validator in this.ValidatorsCollection)
{
validator.RenderControl(writer);
}
}
Render函数返回一个空字符串。
集合中验证程序的Visible属性设置为true
我正在OnInit函数中添加验证器。在第一次呈现validator.RenderControl(writer)期间;返回空字符串,回发后开始返回html输入
也许有人遇到过这样的问题 据我所知,在呈现验证器之前,您需要检查控件是否已添加到页面
Page page = Page;
if (page == null || page.Request == null) {
return false;
}
一个非常有用的例子可以在