我想用C#在asp.net中開發一個應用程序。 在該應用程序中有一個文本框和一個標籤。 我想要以下功能:在asp.net的.cs頁面上獲取文本框的值
當我在文本框中按任何鍵,然後我應該得到這個值。後面的代碼。從.cs頁面我想將此值添加到標籤。
的問題是,有一個ASP文本框沒有按鍵事件,如果我把一個HTML文本框,然後我不的.cs頁面
我怎樣才能走出這個問題上得到它的價值呢?
我想用C#在asp.net中開發一個應用程序。 在該應用程序中有一個文本框和一個標籤。 我想要以下功能:在asp.net的.cs頁面上獲取文本框的值
當我在文本框中按任何鍵,然後我應該得到這個值。後面的代碼。從.cs頁面我想將此值添加到標籤。
的問題是,有一個ASP文本框沒有按鍵事件,如果我把一個HTML文本框,然後我不的.cs頁面
我怎樣才能走出這個問題上得到它的價值呢?
由於文本框上的按鍵是客戶端事件,但您想執行服務器端處理,您將需要使用AJAX請求。
您可能會發現以下有用:
在asp.net文本框將有TextChanged事件,但你將需要啓用後回按鈕,該事件將當你退出TextBox時觸發。
對於你想要的任務要麼使用JavaScript或添加一個按鈕,當這個按鈕是做你想做的。
您可以簡單地爲此創建一個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即可。
我不認爲這是一個很好的網絡應用程序的問題,這樣你會以很多後期結束。
但是,如果你仍然想要這個功能。 Texbox有TextChanges事件,並且如果您還將文本框的AutoPostBack屬性更改爲true,則會得到一些近似的結果,但您仍然必須移動一個currsor。
但它仍然是一個可行的解決方案。你爲什麼不簡單地使用一個觸發click事件的按鈕呢?
替代解決方案是使用Ajax或javaScript,..
你真的想回到服務器嗎?對於這樣的事情,Javascript會更好。 – V4Vendetta 2011-05-05 11:05:31
我試過ontextchanged事件。但是,當我在文本框中按回車鍵時,它會起作用。我想要一個只能通過按鍵發生的事件。 – jitendra 2011-05-05 11:09:12