ASPX Textbox:キーを押すたびにメソッドを実行
質問
送信ボタンのない検索ボックスがあります。Enterキーを押してメソッドを実行する必要があります。どうすればよいですか?
解決
CSSを使用して次のような簡単な操作を行うこともできます。
<asp:Panel DefaultButton="myButton" runat="server">
<asp:TextBox ID="myTextBox" runat="server" />
<asp:Button ID="myButton" runat="server" onclick="myButton_Click" style="display: none; " />
</asp:Panel>
パネルは、実装と周囲のコントロールに応じて必要な場合とそうでない場合がありますが、これは機能し、ポストバックを行います。
他のヒント
非表示ボタンをページに追加し、メソッドをそのボタンのクリックイベントに結び付けることができます。次に、テキストボックス内でEnterキーを押したときにボタンのポストバックアクションをトリガーするために、少しのJavaScriptを追加します。
this.myTextBox.Attributes.Add(
"onkeydown",
"return keyDownHandler(13, 'javascript:"
+ this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27")
+ "', event);");
(ハードコードされた13を Windows.Forms.Keys .Enter、読みやすいバージョンをご希望の場合は入力してください。)
keyDownHandlerは次のようなJavaScript関数です:
function keyDownHandler(iKeyCode, sFunc, e) {
if (e == null) {
e = window.event;
}
if (e.keyCode == iKeyCode) {
eval(unescape(sFunc)); return false;
}
}
注、これは DotNetNuke の ClientAPI Webユーティリティ。
TextChangedイベントを使用し、AutoPostBackプロパティをtrueに設定します。
所属していません StackOverflow