2009-05-04 5 views
-1

Je ne sais pas si c'est vraiment possible, mais je fais de mon mieux.Attacher RequiredValidator sur le contrôle serveur personnalisé rendant un TextBox

Si j'ai un contrôle de serveur personnalisé (complexe) qui (à côté d'autres contrôles) rend un TextBox sur l'interface utilisateur. Lorsque vous placez le contrôle serveur sur une page, est-il possible d'attacher un validateur RequiredField à ce contrôle serveur, de sorte que le validateur valide la propriété Text de ce contrôle qui pointe vers la propriété Text du TextBox affiché?

Bien sûr, je pourrais incorporer le validateur RequiredField directement dans le contrôle serveur, mais cela n'est pas possible pour d'autres raisons (nous rendons automatiquement les validateurs RequiredField sur l'interface utilisateur).

Merci pour votre aide.

Répondre

0

je l'ai eu, la 2ème fois que je réponds à mon propre message :) La prochaine fois je ferai une recherche plus approfondie avant.

Pour ceux d'entre vous qui pourraient rencontrer le même problème. Vous devez spécifier l'attribut ValidationProperty dans la classe de votre contrôle serveur. Par exemple, si votre contrôle serveur expose une propriété « Texte » qui est affiché à l'utilisateur et qui devrait également être validé, vous ajoutez ce qui suit:

[ValidationProperty("Text")] 

Ensuite, il devrait fonctionner.

1

Je pense qu'une solution consiste à placer votre contrôle TextBox dans un Panel, puis vous ajoutez dynamiquement le contrôle RequiredValidator sur le gestionnaire d'événements Page_Load.

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

puis

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); 

     } 

Je mis la CustomTextBox à l'intérieur du panneau pour assurer que le lieu de validation de controle est correct lorsqu'il est ajouté

+0

hmm ... je cherchais plutôt quelque chose comme annoter le contrôle serveur afin de dire au valideur quelle propriété doit être validée ... – Juri

Questions connexes