Asp.net 服务器上的CustomValidator控件在父元素的标记内呈现
我有一个Asp.net 服务器上的CustomValidator控件在父元素的标记内呈现,asp.net,telerik,Asp.net,Telerik,我有一个RadEditor,我正在尝试向其中添加一个CustomValidator,如下所示: protected override void OnInit(EventArgs e) { var validator = new CustomValidator(); validator.CssClass = "validator-error"; validator.Display = ValidatorDisplay.Dynamic; validator.Contr
RadEditor
,我正在尝试向其中添加一个CustomValidator
,如下所示:
protected override void OnInit(EventArgs e)
{
var validator = new CustomValidator();
validator.CssClass = "validator-error";
validator.Display = ValidatorDisplay.Dynamic;
validator.ControlToValidate = ".";
validator.Text = "You've exceeded the maximum allowed length for this field";
validator.ClientValidationFunction = "radEditorCheckLength";
this.Controls.Add(validator);
base.OnInit(e);
}
它工作正常,但是当它呈现时,验证程序实际上是在RadEditor
中呈现的。如何使其显示在RadEditor
元素之前
这完全是一种黑客行为。它有用吗
protected override void Render(HtmlTextWriter writer)
{
this.validator.RenderControl(writer);
this.validator.Visible = false;
base.Render(writer);
this.validator.Visible = true;
}
您需要将CustomValidator
存储在一个字段中:
private CustomValidator validator;
protected override void OnInit(EventArgs e)
{
this.validator = new CustomValidator();
// ...
}
(我在Reflector中反汇编了RadEditor
,但没有找到一种简单的方法来修改RenderChildren
以跳过呈现验证器。)