2

重複の可能性:
Enter キーを押したときにログイン コントロール ボタンを送信する

次のような Login.aspx ページがあります。

<asp:Login ID="MainLogin" runat="server" onloggingin="MainLogin_LoggingIn"></asp:Login>

分離コード:

protected void MainLogin_LoggingIn(object sender, LoginCancelEventArgs e)
{                    
   SqlConnection myConnection = new SqlConnection(DBConnection.GetConnectionString());
   SqlCommand myCommand = new SqlCommand("SELECT * FROM Users WHERE login=@login and pass=@pass", myConnection);
   myCommand.Parameters.AddWithValue("login", MainLogin.UserName);
   myCommand.Parameters.AddWithValue("pass", MainLogin.Password);
   myCommand.Connection.Open();
   SqlDataReader Reader = myCommand.ExecuteReader();
   while (Reader.Read())
   {
      Session["curUserRole"] = Reader["role"].ToString();
      Session["curUserLogin"] = MainLogin.UserName;                    
      FormsAuthentication.RedirectFromLoginPage(MainLogin.UserName, MainLogin.RememberMeSet);                
      return;
   }
   //Reader.Close();
   //myCommand.Connection.Close();
   //myConnection.Close();                                              
}

ユーザーはログイン名とパスワードを入力し、コンポーネントの「ログイン」ボタンを押してログインします。ユーザーがログイン名とパスワードを入力してキーボードの Enter キーを押すと、login.aspx ページが再読み込みされます。それを修正する方法は?キーボードで ENTER を押すと、コンポーネントのログイン ボタンを押すのと同じ動作が必要です。

4

1 に答える 1

2

Panelプロパティと組み合わせてラッパーを使用すると、これを実現できると思いDefaultButtonます。<LoginControlId>$LoginButton次のように、デフォルトのボタンを に設定する必要があります。

<asp:Panel runat="server" DefaultButton="MainLogin$LoginButton">
    <asp:Login ID="MainLogin" runat="server" onloggingin="MainLogin_LoggingIn">
    </asp:Login>
</asp:Panel>
于 2012-05-04T07:59:31.173 に答える