2011-03-25 72 views
1

我有一個TextBox。基本上它是一個搜索框,用戶在其中輸入關鍵字,然後搜索出現。TextBox with EnterKeyPress事件

我現在有一個按鈕,但我想在EnterPress事件上做。我怎樣才能做到這一點?

謝謝!

回答

2

由於這是ASP.NET,當自動按下Enter按鈕時,文本框應該觸發回發。這正是瀏覽器中表單發生的情況。

編輯

你不需要做什麼特別的觸發回發。我讀到你的問題的方式,你想知道如何在回車由文本框中的回車鍵觸發時執行代碼隱藏搜索。如果這是不正確的,讓我知道,我會刪除這個答案。

末編輯

服務器端代碼不支持「TextboxEnterPressed」事件。您可以得到的最接近的是TextChanged事件。

如果您還沒有這樣做,則將執行Button_Clicked事件處理程序之外的搜索所需的任何代碼移動到它自己的函數中。然後更改Button_Clicked事件處理程序和Text_Changed事件處理程序以調用相同的函數。

或者你可以使用JavaScript編寫的東西來處理輸入按鍵,但正如我所說 - 在網頁中,按在窗體中的文本框中輸入觸發回傳,所以你不應該需要費心

異常 - 如果這是一個TextMode設置爲「Multiline」的TextBox,它實際上會在html輸出中生成Textarea。如果是這樣的話,你需要一個JavaScript解決方案。

1

將兩者都放入Panel並設置爲DefaultButton

1

嘗試這種情況:

$('#input_text').keyup(function(e) {  
if(e.keyCode == 13) { 
    alert('Enter key was pressed.');// do your stuff here 
} 

});

1

如果是我,我會選擇JavaScript,可能有一種方法可以在.NET中完成此操作,但這將以通常的.NET方式提交整個表單。

有兩個主要的JavaScript框架,我個人的偏好是MooTools,但是它們學習困難,但它的好處是它有一個很好的OOP設計,所以如果你知道OOP並且你想要學習與Js做更多,然後在我看來這是更好的。另一種選擇是JQuery,一個好的框架,更容易學習(雖然根據你的經驗和知識可以忽略不計)。

MooTools

JQuery

一旦你的JavaScript的設置,那麼你需要決定如何你想要得到的數據,最簡單的方法是隻使用_PostBack調用,它會叫的標準。淨回發方法,我也聽說有一個_ICallBack方法,它可以用來調用一個。沒有回發的NET方法,但我個人還沒有使用過。

但是我的選擇是使用WebService和JavaScript調用,這樣可以讓您獲得更多的靈活性並返回快速結果,無論是在輸入時,還是「在您鍵入」搜索時,例如google-直接進入頁面,異步,無需重新加載頁面。

如果你給我更多關於你想給用戶什麼樣的反饋的數據,我可以提供更好的建議。

它是一個簡單的替代按下按鈕,或更先進的東西?