簡體   English   中英

方法不會在文本框文本更改時觸發

[英]Method not firing on textbox text change

我有一個帶有壓延擴展器的文本框:

<asp:TextBox ID="customDateTo" runat="server" AutoPostBack="true" OnSelectionChanged="customDateFrom_SelectionChanged"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="toCalendarExtender" TargetControlID="customDateTo" runat="server"></ajaxToolkit:CalendarExtender>

如您所見,我有AutoPostBack="true"OnSelectionChanged="customDateFrom_SelectionChanged為文本框分配的OnSelectionChanged="customDateFrom_SelectionChanged

但是我的方法沒有響應:

protected void customDateFrom_SelectionChanged(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Do Something");
}

當我更改文本時,我確實得到了回發,但方法中沒有任何內容正在執行。 為什么會發生這種情況,我該如何解決?

對於TextBox ,我認為它應該是;

OnTextChanged="customDateFrom_SelectionChanged"

OnSelectionChanged="customDateFrom_SelectionChanged"

我假設你想要處理TextBoxTextChanged事件。 SelectionChanged是一個winforms事件,在ASP.NET中不存在。

<asp:TextBox ID="customDateTo" runat="server" 
   AutoPostBack="true" OnTextChanged="customDateFrom_TextChanged">
</asp:TextBox>

當用戶更改其中的文本並離開TextBox時,將引發此事件。

protected void customDateFrom_TextChanged(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Do Something");
}

不觸發事件的另一個原因是如果在觸發事件之前對TextBox進行數據綁定(在Page_Load為fe)。 然后你應該檢查IsPostBackif(!IsPostBack)DataBindTextBox();

你應該處理TextBox.TextChanged事件 ..

例:

 <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" 
            ontextchanged="TextBox1_TextChanged">

//服務器端事件:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
   Label1.Text = Server.HtmlEncode(TextBox1.Text);
}

請參閱: Asp.Net文本框TextChanged事件未觸發

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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