<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>
Ich muss ein Button1
click-Ereignis durchführen, wenn der Benutzer Enter key
in Textbox1
drückt
Fügen Sie im aspx-Seitenladeereignis der Box eine onkeypress
hinzu.
this.TextBox1.Attributes.Add(
"onkeypress", "button_click(this,'" + this.Button1.ClientID + "')");
Fügen Sie dieses Javascript hinzu, um den Tastendruck auszuwerten. Wenn es sich um "Eintreten" handelt, klicken Sie auf die rechte Schaltfläche.
<script>
function button_click(objTextBox,objBtnID)
{
if(window.event.keyCode==13)
{
document.getElementById(objBtnID).focus();
document.getElementById(objBtnID).click();
}
}
</script>
Fügen Sie Ihr Formular in ein asp.net-Bedienfeld ein und legen Sie das defaultButton-Attribut mit der Schaltflächen-ID fest. Siehe den Code unten:
<asp:Panel ID="Panel1" runat="server" DefaultButton="Button1">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
Hoffe das wird dir helfen ...
Codeproject bietet dafür eine Komplettlösung:
http://www.codeproject.com/Articles/17241/Capturing-the-Enter-Taste-zu-Ursache-a-knopf-Klick
und wie der Artikel sagt: "Entscheiden Sie, welche Lösung am besten zu Ihren Bedürfnissen passt"
==================== BEARBEITTE ANTWORT =============================
Der oben erwähnte Link spricht von zwei Möglichkeiten, um das Ereignis "Enter Key" zu erfassen:
Javascript (binden Sie das onKeyPress -Ereignis an das Objekt und erstellen Sie eine JavaScript-Funktion, um zu prüfen, welche Taste gedrückt wurde, und machen Sie Ihre Logik)
_Page_Load im Code hinter: _
//Add the javascript so we know where we want the enter key press to go
if (!IsPostBack)
{
txtboxFirstName.Attributes.Add("onKeyPress",
"doClick('" + btnSearch.ClientID + "',event)");
txtboxLastName.Attributes.Add("onKeyPress",
"doClick('" + btnSearch.ClientID + "',event)");
}
Javascript-Code:
<SCRIPT type=text/javascript>
function doClick(buttonName,e)
{
//the purpose of this function is to allow the enter key to
//point to the correct button to click.
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
if (key == 13)
{
//Get the button the user wants to have clicked
var btn = document.getElementById(buttonName);
if (btn != null)
{ //If we find the button click it
btn.click();
event.keyCode = 0
}
}
}
</SCRIPT>
Panelsteuerung
<asp:Panel ID="panSearch" runat="server" DefaultButton="btnSearch2" Width="100%" >
<asp:TextBox ID="txtboxFirstName2" runat="server" ></asp:TextBox>
</asp:Panel>
Zitat:
Beachten Sie, dass das Panel-Tag eine Eigenschaft namens DefaultButton hat. Sie setzen Diese Eigenschaft an die Schaltflächen-ID der Schaltfläche, auf die Sie klicken möchten ein Enter-Tastendruckereignis. Jedes Textfeld im Panel wird also Richten Sie die Eingabetaste auf die Schaltfläche, die im DefaultButton eingestellt ist Eigentum des Panels
fügen Sie nur im HTML-Code ein Bedienfeld hinzu, das die Steuerelemente der Seite enthält. Fügen Sie im Panel eine Zeile DefaultButton = "buttonNameThatClicksAtEnter" hinzu. Siehe das Beispiel unten, es sollte nichts anderes erforderlich sein.
<asp:Panel runat="server" DefaultButton="Button1"> //add this!
//here goes all the page controls and the trigger button
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</asp:Panel> //and this too!
Sie können es mit Javascript/Jquery tun:
<script>
function runScript(e) {
if (e.keyCode == 13) {
$("#myButton").click(); //jquery
document.getElementById("myButton").click(); //javascript
}
}
</script>
<asp:textbox id="txtUsername" runat="server" onkeypress="return runScript(event)" />
<asp:LinkButton id="myButton" text="Login" runat="server" />