2008-12-11 104 views
11

我有一個ASP.Net Web用戶控件,它包含一個TextBox和一個來自Ajax Control Toolkit的日曆。Web用戶控件和驗證

當我將該用戶控件包含在我的頁面上時,我希望它參與輸入驗證(在UC內部的文本框中有一個必需的提交驗證器集),即。當頁面被驗證時,UC的內容也應該被驗證。所以我讓我的UC實現了IValidator接口,除了我無法在用戶控件上設置驗證組之外,它運行良好。顯然我應該繼承BaseValidator來做到這一點,但我不能繼承,因爲我已經繼承了UserControl。

有一種方法可以處理這種常見的情況。

+0

結帳:?如何驗證用戶控件(http://izlooite.blogspot.com/2010/ 07 /如何對驗證用戶-control.html) – 2012-04-05 05:56:03

回答

10

在您的新用戶控件上創建一個屬性,以在所包含的驗證器上設置驗證組。然後從你的標記中,你所需要做的就是在控件上設置ValidationGroup屬性,然後滾動到用戶控件中包含的驗證器。除非您創建JUST驗證用戶控件,否則您可能不需要接口或從BaseValidator繼承。

public string ValidationGroup 
{ 
    get 
    { 
     return MyRequiredFieldValidator.ValidationGroup; 
    } 
    set 
    { 
     MyRequiredFieldValidator.ValidationGroup = value; 
    } 
} 
3

嘗試在您的用戶控件類中添加[ValidationProperty("NameOfPropertyToBeValidated")

0

如果您打算在未來添加大量驗證,它可能會付錢檢查Peter Blum的DES(數據輸入套件) - 它具有許多用於數據輸入和驗證的增強型控件,包括條件驗證場景和您正在描述。與自己開發所需的時間相比,許可證非常合理。

13

您可以通過使用一個美元符號,分離該兩個用戶控件中參一控:

<asp:RequiredFieldValidator ControlToValidate="MyUserControl$ControlId" runat="server" />