Asp.net

Web 使用者控制和驗證

  • March 16, 2016

我有一個 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" />

引用自:https://stackoverflow.com/questions/359422