2011-05-05 324 views
0

我想用C#在asp.net中開發一個應用程序。 在該應用程序中有一個文本框和一個標籤。 我想要以下功能:在asp.net的.cs頁面上獲取文本框的值

當我在文本框中按任何鍵,然後我應該得到這個值。後面的代碼。從.cs頁面我想將此值添加到標籤。

的問題是,有一個ASP文本框沒有按鍵事件,如果我把一個HTML文本框,然後我不的.cs頁面

我怎樣才能走出這個問題上得到它的價值呢?

+4

你真的想回到服務器嗎?對於這樣的事情,Javascript會更好。 – V4Vendetta 2011-05-05 11:05:31

+0

我試過ontextchanged事件。但是,當我在文本框中按回車鍵時,它會起作用。我想要一個只能通過按鍵發生的事件。 – jitendra 2011-05-05 11:09:12

回答

0

在asp.net文本框將有TextChanged事件,但你將需要啓用後回按鈕,該事件將當你退出TextBox時觸發。
對於你想要的任務要麼使用JavaScript或添加一個按鈕,當這個按鈕是做你想做的。

0

您可以簡單地爲此創建一個JavaScript方法。

你的文本框:

<asp:TextBox ID="textBox" runat="server" onkeydown="onFilterTextChanged()"> 
     </asp:TextBox> 

你的JavaScript,做超時不這樣做的每0.0001秒。

function onFilterTextChanged() { 
     if (timeoutID) 
      window.clearTimeout(timeoutID); 
     timeoutID = window.setTimeout(updateFilterText, 600); 
    } 

將值發送到CodeBehind,text是您的TextBox-Text。

function updateFilterText() { 
     var text = document.getElementById("<%=textBox.ClientID %>").value; 
     __doPostBack("<%=textBox.ClientID%>", "CommandArg" + text); 
    } 

您不需要做與原生TextChanged-Event一樣多的PostBack,您可以簡單地使用這個例如用於Auto-Extender-Plugins。將TextBox包裝到UpdatePanel中,你很好走!

除非你不需要回到服務器,在這種情況下只需在updateFilterText中設置labeltext即可。

0

我不認爲這是一個很好的網絡應用程序的問題,這樣你會以很多後期結束。

但是,如果你仍然想要這個功能。 Texbox有TextChanges事件,並且如果您還將文本框的AutoPostBack屬性更改爲true,則會得到一些近似的結果,但您仍然必須移動一個currsor。

但它仍然是一個可行的解決方案。你爲什麼不簡單地使用一個觸發click事件的按鈕呢?

替代解決方案是使用Ajax或javaScript,..

相關問題