2013-10-15 35 views
2

我有一個附加擴展砑光機的文本框:方法不觸發對文本框的文本改變

<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

但是沒有什麼是響應我的方法:

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

當我改變文本我得到的方法內回傳,但沒有被執行。爲什麼會發生這種情況,我該如何解決?

+0

文本更改是另一個事件'TextBox.TextChanged事件',並且顯示選擇更改.. –

回答

8

對於TextBox,我認爲應該是;

OnTextChanged="customDateFrom_SelectionChanged" 

OnSelectionChanged="customDateFrom_SelectionChanged" 
3

我假設你要處理的TextBoxTextChanged事件來代替。 SelectionChanged是ASP.NET中不存在的winforms事件。

<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遠東)。那麼你應該檢查IsPostBackif(!IsPostBack)DataBindTextBox();