2010-10-29 20 views
0

J'ai une page ASP.net.
Qui a un contrôle Ajax Toolkit Tab.
Qui a des onglets.
Qui ont des commandes personnalisées ascx que j'ai écrites.
Gestion de l'action submit de deux TextBoxes

J'ai une zone de texte qui effectue une action de recherche. Il est déclaré comme ceci:

  <asp:TextBox ID="txtPrereqSearch" runat="server" 
       ontextchanged="txtPrereqSearch_TextChanged"></asp:TextBox> 

Rien de spécial. Ce format a fonctionné pendant des mois. Il n'y a pas de bouton de soumission. Il vient juste de poster quand je frappe entrer. Le problème est apparu lorsque j'ai ajouté un deuxième contrôle personnalisé en utilisant le même type de fonctionnalité. Maintenant, les navigateurs ne publient pas lorsque je tape quelque chose dans l'une de ces zones de texte et appuyez sur Entrée.

Il semble que les navigateurs ont une manière par défaut de gérer une zone de texte sous une forme, mais ce comportement change lorsque le nombre atteint deux.

Y at-il un moyen facile de contourner ce problème? Je suppose que je peux créer un bouton de soumission caché, mais il semble qu'il y ait probablement une meilleure façon de gérer cela lorsque la fonctionnalité est dans deux contrôles personnalisés distincts.

Vos commentaires sont les bienvenus!

Répondre

0

La réponse était un peu différente de ce à quoi je m'attendais, mais philosophiquement j'aime mon idée originale que @jamietre est renforcée.

J'ai dû entourer les contrôles avec une étiquette <asp:Panel> avec un attribut DefaultButton. A-like-a donc:

<asp:Panel ID="ButtonPanel" runat="server" DefaultButton="btnSubmit"> 
         <asp:Label ID="Label1" runat="server" Text="Course:"></asp:Label> 
         <asp:TextBox ID="txtPrereqSearch" runat="server" 
          ontextchanged="txtPrereqSearch_TextChanged"></asp:TextBox> 
          <asp:TextBoxWatermarkExtender ID="txtPrereq_TextBoxWatermarkExtender" 
        runat="server" Enabled="True" TargetControlID="txtPrereqSearch" 
        WatermarkCssClass="Watermark" WatermarkText="e.g., MATH201"></asp:TextBoxWatermarkExtender> 
         <asp:Button ID="btnSubmit" CssClass="InvisibleSubmit" runat="server" Text="Submit" OnClick="txtPrereqSearch_TextChanged"/> 
        </asp:Panel> 
+1

Je pense que cela fonctionnerait même sans utiliser DefaultButton (pas qu'il n'y a pas de mal à l'utiliser) puisque le seul bouton deviendrait la valeur par défaut de toute façon. –

0

Check this out: http://www.allasp.net/enterkey.aspx

Le comportement par défaut sans bouton de soumission semble dépendre du navigateur, et le comportement peut en effet dépendre du nombre de contrôles d'entrée.

Je voudrais ajouter caché "soumettre" bouton (par exemple style="display:none;") qui devrait s'assurer qu'il est toujours soumis.