2012-05-09 29 views
6

我有一個基於Panel的自定義控件。它只是一個帶有3個DropDownLists的簡單面板。如果我添加一個CompareValidator我的WebForm和ControlToValidate屬性設置爲我的自定義控件的ID我收到以下錯誤:如何使自定義控件可驗證?

Control '{0}' referenced by the ControlToValidate property of '{1}' cannot be validated.

我明白爲什麼,在CompareValidator不能理智地驗證對Panel什麼。那麼,我需要添加到自定義控件中才能使驗證程序能夠驗證它?

我曾嘗試將Text屬性添加到我的Panel中,該屬性返回3 DropDownLists的Text屬性的組合。徒勞無功。

我試過尋找可驗證控件(TextBox)實現的某些接口(ITextControl)並將它們添加到我的自定義控件中。徒勞無功。

如何使我的自定義控件基於Panel,可以通過常規.net驗證器進行驗證? (使用RequiredFieldValidator,CompareValidator等)

回答

5

如果你不已經擁有了它,你需要將ValidationProperty屬性添加到您的類,所以它知道要用於驗證哪個屬性:

[ValidationProperty("Text")] 
[ToolboxData("<{0}:YourCustomControl runat=server></{0}:YourCustomControl>")] 
public class YourCustomControl : WebControl 
... 
+0

是的,訣竅!謝謝你們的快速響應。 :)幾分鐘後會接受。 – Bazzz

+0

沒問題。真高興你做到了。 –