私は次の問題に直面し、ほぼ2日間それと戦ってきました。私は次のコードを持っています。
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(writer); 空の文字列を返します。ポストバック後、html入力を返し始めます...。
多分誰かがそのような問題に直面しました???