2011-04-17 44 views
0

在我的情況下,我想根據給定的邏輯動態添加驗證程序到我的控件。對於每個控件,我首先檢查我的數據庫中的某些內容,如果發現該字段是必需的,我想將requiredField添加到該控件中。我匆匆遍歷每個控件,如果需要我添加屬性required =「true」。動態添加驗證程序

我添加了這段代碼,但它確實工作我的意思是沒有任何反應,沒有驗證正在進行。

if(gc.Attributes["controlid"] != null) 
    { 
     RequiredFieldValidator validator = new RequiredFieldValidator(); 
     validator.ControlToValidate = gc.Attributes["controlid"]; 
     validator.ErrorMessage = gc.Attributes["errormessage"]; 
     this.Controls.Add(validator); 
    } 

感謝您的任何建議。

+0

你在哪裏添加驗證器到頁面? – DancesWithBamboo 2011-04-17 14:30:11

+0

在PageLoad,所有都在更新面板 – gruber 2011-04-17 18:29:05

回答

0

您還必須將其添加到頁面的驗證程序集合中才能進行服務器端驗證。將它僅僅添加到頁面控件集合中,就像獲取JavaScript驗證呈現給瀏覽器所需的那樣。

Page.Validators.Add(validator); 
+0

仍然無法正常工作 – gruber 2011-04-18 15:38:04

+0

您是否確保上面運行您的代碼並重新創建回發上的控件? – DancesWithBamboo 2011-04-18 21:15:15

+0

是的,它每次都是poastback和page_load事件觸發 – gruber 2011-04-19 11:48:32

0

您是否將您的Validator控件添加到與它驗證的控件相同的容器中?驗證器控件要求目標控件位於同一個INamingContainer中。