2013-04-09 112 views

回答

0

另一種解決方案是使用UpdatePanel。然後,您可以利用服務器端事件而不是事件處理程序。你可以標記看起來是這樣的:

<asp:ScriptManager ID="ScriptManager" runat="server" /> 
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 
     <asp:TextBox ID="SomeTextBox" runat="server" TextChanged="SomeTextBox_TextChanged" AutoPostBack="true" /> 
    </asp:UpdatePanel> 
</asp:ScriptManager 

然後在TextChanged處理程序,你可以做你的工作。

說明:TextChanged事件將在回發發生時文本實際發生更改的文本框上觸發。 AutoPostBack屬性是必要的,這樣當文本框失去焦點時,頁面實際上會回覆。記住

最後一點,你可能需要在頁面上利用this.IsPostBackLoad處理程序,因爲每一個控制被更新時,它會重建頁面。 Load處理程序中的邏輯通常只需要執行一次,但如果您沒有檢查是否回發,則會造成問題,因爲這樣每次您離開文本框時都會執行該回退。

0

使用jquery。

首先附加模糊事件處理程序,其中您調用ajax方法到服務器傳遞文本框的新值。 在服務器端處理此ajax事件並將數據寫入數據庫或其他任何地方。

這是一段可能有幫助的代碼。

$('#textbox_id').blur(function() { 
    $.ajax({url:"handler_url.ashx?textbox_value=" + $('#textbox_id').val()}); 
}); 

然後在服務器上創建您的ashx處理程序,並使用ProcessRequest方法處理您的請求。從那裏你將有權訪問Request.QueryString,其中將存儲文本框的新值。

相關問題