關於ASP.net TextBox控件的失去焦點后觸發其它事件


編寫人:CC阿爸

 

2015-2-02

今天在這里,我想與大家一起分享如何處理的ASP.net TextBox控件的失去焦點后觸發其它事件的問題,在此做個小結,以供參考。有興趣的同學,可以一同探討與學習一下,否則就略過吧。

 

1.首先弄清楚問題,asp.net 2.0服務器控件沒有onBlur。因此我們第一個方法是采用

OnTextChanged 來處理
有一點要注意,txtVen的autopostback要設置為true.
<asp:TextBox ID= " txtVen " runat= " server " Width= " 80px "  class= " TextBox "   
                        OnTextChanged= " txtVen_TextChanged " AutoPostBack= " true "></asp:TextBox>

public  void txtVen_TextChanged( object sender, EventArgs e)
        {
             string strSQL2 =  " SELECT * FROM  P_Ven WHERE Ven=' " + txtVen.Text +  " ' ";
            DataSet ds2 = DS(strSQL2,  " Sys ");
             if (ds2 ==  null || ds2.Tables[ 0].Rows.Count ==  0)
            {
            }
             else
            {
                 // 帶出幣別
                SetSelectedIndex(ddlCurr, ds2.Tables[ 0].Rows[ 0][ " Currency "].ToString());
                chkHas_Sure.Checked = Convert.ToBoolean((ds2.Tables[ 0].Rows[ 0][ " Has_Sure "]).ToString());
            }

        } 

以下別以為是大功告成:你會發現根據進不了你定義的后台事件。

OnTextChanged本身就是這樣啊,文本改變了,並不是立即就觸發事件,需要某個東西觸發頁面更新后,它才會起作用

這時你要在頁面的load事件中添加:     

textbox1.Attributes["onblur"] = ClientScript.GetPostBackEventReference(控件1, null);

則當textbox 失去焦點的時候,觸發控件1 的事件。

 控件1 的事件可以隨意寫。 當寫為:textbox change 事件時, 就在textbox 失去焦點的時候 執行 textbox change事件。

 

這樣就相當入引入了onblur事件。我在程序中加入以下代碼:

txtVen.Attributes["onblur"] = ClientScript.GetPostBackEventReference(txtVen, null);

 

2.以下方法雖說可以我的問題,但畫面會刷新,需要刷新的方法,當然不是我們希望的。

下面我們使用 AJAX+TextChanged事件 來處理。

 

后續待補充

 

 

以下第二部分為我在程序中采用的解決方案

歡迎加入技術分享群,請留下QQ號碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM