2012-04-06 15 views
0

我有一個RadEditor,我想一個CustomValidator添加到它,像這樣:的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元素之前?

enter image description here

回答

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(); 
    // ... 
} 

(我在反射拆解RadEditor,但我沒有看到一個簡單的方法來修改RenderChildren跳過渲染驗證)

相關問題