2009-05-04 47 views
-1

我不知道這是否真的可行,但我盡我所能。在自定義服務器控件上附加RequiredValidator來呈現文本框

如果我有一個(複雜)自定義服務器控件(在其他控件旁邊)在UI上呈現文本框。將服務器控件放在頁面上時,是否可以將RequiredField驗證程序附加到該服務器控件,以便驗證程序驗證該控件的Text屬性,該屬性指向呈現的TextBox的Text屬性?

當然,我可以直接將RequiredField驗證器合併到服務器控件中,但這是出於其他原因(我們在UI上自動渲染RequiredField驗證器)。

感謝您的幫助。

回答

0

我得到它的時候,我正在回答了第二次驗證CONTROLE地方是正確的我自己的帖子:)下次我會做更深入的研究。

對於那些可能會遇到同樣問題的你。您必須在服務器控件的類上指定ValidationProperty屬性。舉例來說,如果你的服務器控件公開其被顯示給用戶,並且仍然需要確認屬性「文本」,添加以下內容:

[ValidationProperty("Text")] 

那麼它應該工作。

1

我認爲一種解決方案是將TextBox控件放入Panel中,然後在Page_Load事件處理程序中動態添加RequiredValidator控件。

<asp:Panel ID="Panel1" runat="server"> 
<MyCustomTextBox ID="TextBox1" runat="server"></MyCustomTextBox> 
</asp:Panel> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

然後

protected void Page_Load(object sender, EventArgs e) 
     { 
      var validator = new RequiredFieldValidator(); 
      validator.ControlToValidate = "TextBox1"; 
      validator.ErrorMessage = "This field is required!"; 
      Panel1.Controls.Add(validator); 

     } 

我把CustomTextBox面板內,以確保增加

+0

嗯......我正在尋找更多類似註釋服務器控件的東西,以告訴驗證器哪些屬性需要驗證...... – Juri 2009-05-05 09:57:31

相關問題