編寫人:CC阿爸
2015-2-02
今天在這里,我想與大家一起分享如何處理的ASP.netTextBox控件的失去焦點(diǎn)后觸發(fā)其它事件的問題,在此做個(gè)小結(jié),以供參考。有興趣的同學(xué),可以一同探討與學(xué)習(xí)一下,否則就略過吧。
1.首先弄清楚問題,asp.net2.0服務(wù)器控件沒有onBlur。因此我們第一個(gè)方法是采用
OnTextChanged來處理有一點(diǎn)要注意,txtVen的autopostback要設(shè)置為true.<asp:TextBoxID="txtVen"runat="server"Width="80px"class="TextBox"OnTextChanged="txtVen_TextChanged"AutoPostBack="true"></asp:TextBox>publicvoidtxtVen_TextChanged(objectsender,EventArgse){stringstrSQL2="SELECT*FROMP_VenWHEREVen='"+txtVen.Text+"'";DataSetds2=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());}}
以下別以為是大功告成:你會(huì)發(fā)現(xiàn)根據(jù)進(jìn)不了你定義的后臺(tái)事件。
OnTextChanged本身就是這樣啊,文本改變了,并不是立即就觸發(fā)事件,需要某個(gè)東西觸發(fā)頁面更新后,它才會(huì)起作用
這時(shí)你要在頁面的load事件中添加:
textbox1.Attributes["onblur"]=ClientScript.GetPostBackEventReference(控件1,null);
則當(dāng)textbox 失去焦點(diǎn)的時(shí)候,觸發(fā)控件1 的事件。
控件1 的事件可以隨意寫。 當(dāng)寫為:textbox 的 change 事件時(shí), 就在textbox 失去焦點(diǎn)的時(shí)候 執(zhí)行 textbox 的change事件。
這樣就相當(dāng)入引入了onblur事件。我在程序中加入以下代碼:
txtVen.Attributes["onblur"]=ClientScript.GetPostBackEventReference(txtVen,null);
2.以下方法雖說可以我的問題,但畫面會(huì)刷新,需要刷新的方法,當(dāng)然不是我們希望的。
下面我們使用 Ajax+TextChanged事件 來處理。
后續(xù)待補(bǔ)充
以下第二部分為我在程序中采用的解決方案
歡迎加入技術(shù)分享群,請(qǐng)留下QQ號(hào)碼
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注