2012-06-14 9 views
7

私はASP.NET Webアプリケーションで少し問題を遭遇しました。ASP.NETリンクボタンでキーを入力しますか?

Enterキーを押してアクセスしたいページにカップルのボタンが表示されています(TextBoxにフォーカスがある場合)。

グーグルは私を助けましたが、私は考えましたが、

これは私が見つけたものです:

tbEmail.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('" + btRegister.UniqueID + "').click();return false;}} else {return true}; "); 

は、これが動作するようには思えない、それはまだ私がこの時点で押されたくない別のボタンを押します。

提案がありますか?

答えて

21

Webフォームを使用しているように見えます。

Panelの内部で何をしているのかを確認し、パネルのDefaultButtonプロパティを設定することができます。ユーザーがtxtUsertxtPassのいずれかにデータを入力し、Enterキーを打った

<asp:Panel ID="LoginPanel" runat="server" DefaultButton="btLogin"> 
    <asp:TextBox ID="txtUser" runat="server" /> 
    <asp:TextBox ID="txtPass" runat="server" /> 
    <asp:Button ID="btLogin" runat="server">Login</asp:Button> 
</asp:Panel> 

、彼らはボタン btLoginをトリガします。

+0

詳細情報をありがとう、本当に私を助けた! – James

+0

私は在庫 'Login.aspx'ページを修正していました。ボタンにはIDプロパティがありませんでした。CommandNameは正しく動作するかどうかわかりませんでした。 – strider

3

jQueryを使用する方がずっと簡単です。イベント番号keypressにバインドします。

+1

私は同意します。 jQueryはそれらの不快な詳細をすべてカプセル化し、神の恩寵です。 – Jeremy

+1

答えをありがとう、今後これを確実に使うつもり! – James

4

JavaScriptを使用しないでください - <asp:Panel>の中にフォームを入れて、DefaultButtonプロパティをボタンのIDに設定してください。

0

あなたは..だから違う事をするだろうこれは、各テキストボックスのためのキープレスイベントを使用することができます。

private void a_keyPress(object sender, KeyPressEventArgs e) 
{ 
    RadTextBox myBox = (RadTextBox)sender; 

    if (e.KeyChar == (char)Keys.Return) 
    { 
     if (myBox.ID == "textbox1") 
     // then do stuff... 
    } 
    else if //do stuff... 
}