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
以跳过呈现验证器。)