2010-08-12 9 views
2

Voici mon code ASP.NET. Simple. il a une zone de texte associée à un validateur de champ obligatoire et un bouton d'envoi.ASP.NET Validator Problème lors de la définition de Display = "Dynamic"

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ControlToValidate="TextBox1" Display="Dynamic" 
     ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> 
    <asp:Button ID="Button1" runat="server" Text="Click Me" /> 

Effectuez les opérations suivantes

  1. Cliquez sur Button1

  2. RequiredFieldValidator sera montré

  3. type texte dans TextBox

  4. Utilisez votre souris (pas d'onglet S'il vous plaît). et cliquez sur le bouton, vous pouvez voir que votre page ne "POSTBACK" et seule la validation est effacée. vous devez

cliquez à nouveau sur le bouton pour la soumission du formulaire.

Cela semble être un bug par Microsoft lors de la configuration de la propriété d'affichage = « Dynmaic » et est-il une solution facile sans changer le comportement prévu pour

ce disponible? Je ne pouvais pas trouver une solution pour cela n'importe où.

Répondre

6

Votre page ne s'affiche pas car le bouton s'éloigne sous la souris lorsque vous voulez cliquer dessus. C'est parce qu'il obtient le focus et le Validator-ErrorMessage disparaît à gauche. Si vous insérez un <br/> devant le bouton, cela fonctionne.

Normalement j'utiliser * comme du texte et utiliser un ValidationSummary pour afficher les ErrorMessage (s):

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ControlToValidate="TextBox1" Display="Dynamic" 
     ErrorMessage="This is the Errormessage" Text="*"></asp:RequiredFieldValidator> 
<asp:Button ID="Button1" runat="server" Text="Submit" /> 
<asp:ValidationSummary ID="ValidationSummary1" runat="server" /> 

Ou, si vous utilisez ASP.Net Ajax, vous pouvez utiliser les commandes astucieuses comme le ValidatorCalloutExtender.

+0

Salut Tim, Merci pour la réponse. l'ajout d'une étiquette de rupture a aidé. Génial de voir une réponse précieuse. Maintenant, je dois essayer dans le code de projet quelque chose de similaire, dans lequel je pourrais avoir des ennuis à faire de même – sivakumar

+0

Lorsque vous ne pouvez pas placer un bouton après le validateur, vous pouvez utiliser le style CSS min-height pour définir la taille de la table et le bouton à l'extérieur de la table, il ne bougera pas. :) –

Questions connexes