2013-10-15 33 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();