0

送信ボタンのない検索ボックスがあります。Enter キーを押してからメソッドを実行できるようにする必要があります。これを行うにはどうすればよいですか?

4

3 に答える 3

4

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>

パネルは、実装と周囲のコントロールに応じて必要な場合と不要な場合がありますが、これは機能し、私にとってはポストバックを行います。

于 2008-10-23T16:16:50.127 に答える
2

ページに非表示のボタンを追加し、そのボタンのクリックイベントにメソッドを接続することができます。次に、テキストボックス内で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; 
    } 
}

これは、 DotNetNukeClientAPIWebユーティリティの実装に基づいていることに注意してください。

于 2008-10-23T16:10:09.250 に答える
0

TextChanged イベントを使用して、AutoPostBack プロパティを true に設定します。

于 2008-10-23T14:29:24.073 に答える