Asp.net
Web 使用者控制和驗證
我有一個 ASP.Net Web 使用者控制項,其中包含來自 Ajax 控制項工具包的文本框和日曆。
當我在我的頁面上包含這個使用者控制項時,我希望它參與輸入驗證(在 UC 內的 TextBox 上設置了一個必需的歸檔驗證器),即。當頁面被驗證時,UC 的內容也應該被驗證。所以我讓我的 UC 實現了 IValidator 介面,它執行良好,只是我無法在使用者控制項上設置驗證組。顯然我應該從 BaseValidator 繼承來做到這一點,但我不能,因為我已經繼承了 UserControl。
必須有一種方法來處理這種常見情況。
在新使用者控制項上創建一個屬性,該屬性在包含的驗證器上設置驗證組。然後從您的標記中,您只需在控制項上設置 ValidationGroup 屬性,這將滾動到使用者控制項中包含的驗證器。您可能不需要介面或從 BaseValidator 繼承,除非您創建的只是一個驗證使用者控制項。
public string ValidationGroup { get { return MyRequiredFieldValidator.ValidationGroup; } set { MyRequiredFieldValidator.ValidationGroup = value; } }
您可以通過用美元符號分隔兩者來引用使用者控制項中的控制項:
<asp:RequiredFieldValidator ControlToValidate="MyUserControl$ControlId" runat="server" />