2009-06-16 71 views
1

我目前正在基於數據庫信息重新編寫動態表單。在驗證器上設置ControlToValidate

這種形式包含了大量的「特定項目」屬性,每個屬性都有一個單一的控制和標籤,例如類別都有一個標籤,上面寫着「類別」,幷包含所有的選項一個DropDownList。

我現在發現的問題是,它們中的每一個都是通過基於數據庫中的一些信息(屬性名稱,屬性的選項和屬性,例如文本或下拉列表)以編程方式創建的,並添加到頁面中它們至少有一個驗證器,以確保輸入的數據是正確的。

這提供了一個問題:當我將每個組件驗證爲對象而不是aspx上的靜態事件時,如何在驗證器上設置ControlToValidate(也以編程方式創建)?

回答

2

確保您的控件具有ID並相應地設置Validator.ControlToValidate屬性。

+0

不錯的一個,沒有發現那個屬性! – 2009-06-16 12:46:43

3

爲動態控件添加一個Id,然後使用該Id設置ControlToValidate。事情是這樣的:

ddl = new DropDownList(); 
ddl.Id = "ddlWithMyID"; 

val = new SomeTypeOfValidator(); 
val.ControlToValidate = "ddlWithMyID"; 

確保,如果你想處理從動態創建的控件的事件重新創建他們,給他們相同的ID。這可以在Page_Init中或甚至在Page_Load中完成。