0

私はを持っていて、それ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要素の前に表示するにはどうすればよいですか?

ここに画像の説明を入力してください

4

1 に答える 1

1

これは完全なハックです。それは機能しますか?

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

于 2012-04-06T18:07:40.017 に答える