Senden Sie die Login-Steuerschaltfläche, wenn ich die Eingabetaste drücke
Habe ich eine ASP.NET web-Seite mit einem Login-Kontrolle auf. Wenn ich die EINGABETASTE drücken, wird der Login-button nicht Feuer, sondern die Seite legt, nichts zu tun.
Die standard-Lösung dafür, die ich im Netz gefunden habe ist, schließen Sie den Login-Steuerelement in einem Panel, dann legen Sie die Panel-Schaltfläche Standard. Aber anscheinend ist das nicht so gut funktionieren, wenn die Seite eine master-Seite. Ich habe versucht, die Einstellung der Standard-Schaltfläche im code mit Kontrolle.ID Kontrolle.ClientID, und Kontrolle.Die UniqueID, und in jedem Fall bekomme ich:
Den DefaultButton der panelName muss die ID eines Steuerelements vom Typ IButtonControl.
Ich bin sicher, es gibt eine Möglichkeit, dies zu tun, mit JavaScript, aber ich möchte wirklich, es zu tun mit plain old C# - code, wenn möglich. Ist es möglich?
InformationsquelleAutor der Frage Ryan Lundy | 2008-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies hilfreich sein: http://weblogs.asp.net/jgalloway/archive/2007/10/03/asp-net-setting-the-defaultbutton-for-a-login-control.aspx
Können Sie den folgenden Verweis auf die Taste in den Login-Steuerelement Vorlage:
Grundsätzlich können Sie definieren einen DefaultButton nicht nur auf der Form-Ebene, sondern auch auf die einzelnen Panel-Ebene, so lange, wie die Konzentration innerhalb des Bereichs, der Standard-Schaltfläche für das Bedienfeld verwendet wird, wenn Sie drücken Sie "Enter"
InformationsquelleAutor der Antwort Vassili Altynikov
Super Antwort von Blend Master! Im wesentlichen nur verwenden Sie Systemsteuerung.DefaultButton, aber ich will zu bereinigen, die Verwirrung darüber, was genau Sie brauchen, um es zu. Es ist nicht einfach ".ID" oder ".UniqueID" - die Dokumentation ist ein bisschen fehlt.
Müssen Sie legen Sie es auf die UniqueID der Schaltfläche relativ zu das Panel-naming-container UniqueID. Zum Beispiel, wenn Sie Ihr panel UniqueID"Body$Content$pnlLogin" und Ihre login-button UniqueID "Body$Content$ucLogin$btnLogin" (denn es ist von innen ein Steuerelement mit dem Namen "ucLogin"), dann müssen Sie die Systemsteuerung.DefaultButton "ucLogin$btnLogin".
Können Sie diese arbeiten im code wie folgt. (Ich konnte nicht finden jede Klassenbibliothek Methode für diese, aber lassen Sie mich wissen, wenn Sie eines finden.)
InformationsquelleAutor der Antwort EMP
müssen Sie so etwas wie dies in der Seite geladen...
die Passwort-textbox hat ein onKeyPress-Attribut Hinzugefügt, die Kraft einer doPostBack auf den Absenden-button, wenn die "Enter" - Taste gedrückt wird. Dies simuliert den Klick auf den submit-button.
InformationsquelleAutor der Antwort StingyJack
Yo, ich fand diese Lösung auf dem Netz, es funktionierte für mich.
InformationsquelleAutor der Antwort qwebek
Vorausgesetzt Login1 ist die ID des login-Steuerelements.
Für Sie "enter" überall auf der Seite zu übermitteln, zu ergänzen, zu init in Ihrer codebehind:
Für 'enter', um nur Einreichen, wenn Sie innerhalb des login-Steuerelement, wickeln Sie das login-Steuerelement in einer asp:Panel, und setzen
DefaultButton="Login1$LoginButton"
auf dem panelBeide Ansätze funktionieren gut mit master-Seiten.
InformationsquelleAutor der Antwort David Eison
Klingt wie der login-button wird ausgespuckt wie
<input type="button">
eher als<input type="submit">
. Sie konnte immer Vorlage der LoginControl und fügen Sie den Absenden-button, loszuwerden, die hässlichen Standard-markup in der gleichen Zeit!Wenn Sie haben, Javascript zu verwenden, um dies zu beheben ist etwas ernsthaft falsch! (aber dann es klingt wie Sie wissen)
InformationsquelleAutor der Antwort roryf
Um ein bisschen mehr Details und Anleitung zu den oben genannten Beiträge, hier ist ein walkthrough:
In das markup einer Seite, laden Sie Ihre login-Steuerelement, müssen Sie zum aktualisieren der html-an zwei Orten.
Erste, in der Seite "form" - tag, müssen Sie die Schaltfläche Standard. Siehe unten, wie ich kam mit dem Namen.
(Die Benennung: Die ucLogin Teil vor dem dollar-Zeichen muss die ID des login-Steuerelement, wie erklärt, weiter unten in Ihre Seite ein. Die btnSubmit Teil muss die ID von der Taste, wie es auch heißt, in das login-Steuerelement der html -)
Als Nächstes müssen Sie wickeln Sie die Erklärung Ihrer login-Steuerelement in einem panel, und setzen Sie die DefaultButton-Eigenschaft:
Sollte es für Sie tun.
InformationsquelleAutor der Antwort Jason Marsell
Basierend auf Ihrem gute Antworten, aus einem custom control
ermöglicht eine Seite zu haben, die mehrere Standard-Tasten, basierend auf dem panel, welches im Fokus.
Es überschreibt Panel OnLoad-Methode und die DefaultButton-Eigenschaft.
InformationsquelleAutor der Antwort Kb.
Einer Lösung wird durch die Einbettung der login-Steuerelement in das panel-Steuerelement und Einstellung der
defaultbutton
im Bedienfeld, um dieParent$ID
der Taste im Login-Steuerelement funktioniert. Es ist der code:InformationsquelleAutor der Antwort samuel