簡體   English   中英

未觸發文字更改事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM