2008-10-23 55 views
0

我有一個搜索框,沒有提交按鈕,我需要能夠擊中輸入,然後執行一個方法,我該怎麼做?ASPX Textbox:執行方法返回按鍵

+0

這是客戶端方法還是服務器端方法? – Tom 2008-10-23 14:31:29

+0

嗨,它需要是服務器端,沒有JavaScript – Tablet 2008-10-23 14:34:28

回答

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> 

面板可能是也可能不是必要的,但這個工程並執行回發我。

0

使用TextChanged事件,並將AutoPostBack屬性設置爲true。

+0

這隻會把一個字符放在那裏,並點擊文本框,有什麼辦法來防止這種事件? – Tablet 2008-10-23 14:32:12

2

您可以在頁面上添加一個隱藏按鈕,並將您的方法連接到該按鈕的單擊事件。然後添加一小段JavaScript來觸發該按鈕的回發操作,當您按下文本框中的回車鍵時。

this.myTextBox.Attributes.Add(
    "onkeydown", 
    "return keyDownHandler(13, 'javascript:" 
    + this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27") 
    + "', event);"); 

(你也可以更換硬編碼Windows.Forms.Keys。進入13,如果你願意更容易閱讀的版本。)

凡keyDownHandler是一個JavaScript函數是這樣的:

function keyDownHandler(iKeyCode, sFunc, e) { 
    if (e == null) { 
     e = window.event; 
    } 
    if (e.keyCode == iKeyCode) { 
     eval(unescape(sFunc)); return false; 
    } 
} 

請注意,這是基於DotNetNukeClientAPI web utility的實施。