Question

J'ai une boîte de recherche qui n'a pas de bouton d'envoi, je dois pouvoir appuyer sur Entrée, puis exécuter une méthode, comment puis-je faire cela?

Était-ce utile?

La solution

vous pouvez également faire quelque chose de simple comme celui-ci avec CSS:

<asp:Panel DefaultButton="myButton" runat="server">
    <asp:TextBox ID="myTextBox" runat="server" />
    <asp:Button ID="myButton" runat="server" onclick="myButton_Click" style="display: none; "  />
</asp:Panel>

Le panneau peut être nécessaire ou non, selon votre implémentation et les contrôles environnants, mais cela fonctionne et crée une publication pour moi.

Autres conseils

Vous pouvez ajouter un bouton caché à la page et relier votre méthode à l'événement de clic de ce bouton. Ajoutez ensuite un peu de javascript pour déclencher l'action de postback de ce bouton lorsque vous appuyez sur Entrée dans la zone de texte.

this.myTextBox.Attributes.Add(
    "onkeydown", 
    "return keyDownHandler(13, 'javascript:" 
     + this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27") 
     + "', event);");

(Vous pouvez également remplacer le code 13 par Windows.Forms.Keys . Entrez si vous préférez une version plus facile à lire.)

Où keyDownHandler est une fonction JavaScript comme celle-ci:

function keyDownHandler(iKeyCode, sFunc, e) { 
    if (e == null) { 
        e = window.event; 
    } 
    if (e.keyCode == iKeyCode) { 
        eval(unescape(sFunc)); return false; 
    } 
}

Notez que ceci est basé sur la mise en œuvre de de DotNetNuke Utilitaire Web ClientAPI .

Utilisez l'événement TextChanged et définissez la propriété AutoPostBack sur true.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top