[英]text changed event not fired
我需要將文本框的1個事件添加到我的網頁中(使用C#在ASP.NET中創建),並在Page_Load函數和asp語法中聲明了我:
protected void Page_Load(object sender, EventArgs e)
{
textbox1.TextChanged += new EventHandler(textbox1_TextChanged);
}
public void textbox1_TextChanged(object sender, EventArgs e)
{
if (textbox1.Text == "ABCD")
{
Image1.Visible = true;
textbox1.Enabled = false;
}
}
並進入asp頁面,我使用了以下語句:
<asp:TextBox Width="200" ID="textbox1" runat="server"></asp:TextBox>
我做了調試,發現沒有執行textbox1_TextChanged函數
為什么呢
您需要將AutoPostBack
設置為true
。
參見msdn :
若要使TextChanged事件引起立即發布,請將TextBox控件的AutoPostBack屬性設置為true。
好了,遲到總比沒有好:嚴格地說,您聲明了該事件的處理程序 。 但是您沒有將事件綁定到處理程序,如下所示:
<asp:TextBox Width="200" ID="textbox1" OnTextChanged="textbox1_TextChanged" runat="server"></asp:TextBox>
您錯過了什么: OnTextChanged="textbox1_TextChanged"
換句話說,永遠不會調用您的方法,因為您從未告訴控件該方法是事件的處理程序。
我認為值得一提的是,如果文本值實際未更改,則不會觸發TextChanged事件,即您設置了文本,但將其設置為與以前相同的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.