我已经面对了下面的问题,并与之斗争了近两天。我有以下代码。
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函数返回空字符串。集合中的Validator的Visible属性设置为true。
我在OnInit函数中添加了验证器。在第一次渲染validator.RenderControl(编写器)时,返回一个空字符串,回发之后,它开始返回html输入...
也许有人遇到过这样的问题?
发布于 2012-04-05 05:44:26
据我所知,在呈现验证器之前,您需要检查控件是否已添加到页面中。
Page page = Page;
if (page == null || page.Request == null) {
return false;
}在MSDN中可以找到一个非常有用的示例
https://stackoverflow.com/questions/10014063
复制相似问题