これは一般的な問題のようですが、解決策が見つかりません。
作成したログイン コントロールにあるユーザー名とパスワードを入力します。パスワードを入力したら Enter キーを押すと、ページが更新されます。ページロードイベントをトリガーしますが、クリックイベントのボタンはトリガーしません。
送信ボタンを押すと、すべて正常に動作します。
これは一般的な問題のようですが、解決策が見つかりません。
作成したログイン コントロールにあるユーザー名とパスワードを入力します。パスワードを入力したら Enter キーを押すと、ページが更新されます。ページロードイベントをトリガーしますが、クリックイベントのボタンはトリガーしません。
送信ボタンを押すと、すべて正常に動作します。
フォームのデフォルトボタンの使用は正しいですが、HTMLにレンダリングされるため、正しいIDを指定する必要があります。
ジョンが上で言ったようにあなたはそうします:
<form runat="server" DefaultButton="SubmitButton">
ただし、レンダリングされるボタン名を使用していることを確認してください。これは、コントロールでButtonを公開するか、ClientIdを返すメソッドで実現できます。
ボタンがbtnSubmitと呼ばれ、コントロールucLoginの実装があるとします。
フォームにIDを付けます
<form runat="server" id="form1">
次に、ページの背後にあるコードをページにロードし、ボタンクライアントIDを渡してDefaultButtonを設定します。
protected void Page_Load(object sender, EventArgs e)
{
form1.DefaultButton = ucLogin.btnSubmit.ClientID;
}
ASP.NET 2.0 以降を使用している場合は、ページのフォームにデフォルトのボタン属性を設定できます。
<form runat="server" DefaultButton="SubmitButton">
テキスト入力で ENTER を押すと、Button.onclickではなくForm.onsubmitが実行されます。
これは、実際の送信ボタンなしでフォームを作成できるという事実に触発されたものだと思います (ENTER の使用のみに依存します)。