2016-08-03 70 views
0

我使用TextBox WebForm控件配置为像引导Datetimepicker。 而我需要启动服务器端TextChanged事件。 我有的代码不起作用,所以它不会调用服务器端部分。如何调用TextBox WebForm控件的TextChanged

HTML

<div class='datepicker input-group date' id='datetimepickerStart'> 
            <asp:TextBox ID="StartDate" class="form-control dateField" placeholder="Fecha" required runat="server" OnTextChanged="StartDate_TextChanged"></asp:TextBox> 
    <span class="input-group-addon"> 
    <span class="glyphicon glyphicon-calendar"></span> 
</span> 
</div> 

C#

protected void StartDate_TextChanged(object sender, EventArgs e) 
{ 
    // It does not fire :(  
} 

我试图迫使这个事件是这样,但没有喜悦。

JS

$('#datetimepickerStart').datetimepicker(); 

$('#datetimepickerStart').datetimepicker().on('dp.change', function (event) { 
     console.log(event.date); 
     $('#StartDate').change(); // It does not help 
     $('#StartDate').html(event.date); // It does not help    
}); 

任何线索如何解决呢?方法不正确的

+1

你的HTML说OnTextChanged = “StartDate_TextChanged”,但您的服务器方法EndDate_TextChanged? – Steve

回答

0

名称,添加autopostback= 'true'到文本框

+0

对不起,它不起作用。其他东西丢失... –

+0

对不起。你使用验证js库吗? –

+0

不,我不使用它。 –

0

为了TextChanged事件当您离开文本框火,你必须TextBox控件的AutoPostBack属性设置为true。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback(v=vs.110).aspx

<asp:TextBox ID="StartDate" class="form-control dateField" autopostback="true" placeholder="Fecha" required runat="server" OnTextChanged="StartDate_TextChanged"></asp:TextBox> 

你还需要确保对OnTextChanged事件处理程序的名称与代码的方法的名称(也许这只是一个错字)相匹配。

最后,我发现TextChanged事件有点挑剔,并导致不必要的回发,页面滚动,焦点丢失等,因此您可能需要考虑使用客户端解决方案(例如JQuery)代替。

+0

对不起,它不工作。其他东西丢失... –

+0

如果你删除日期时间选择器,只需键入到文本框中,它失去焦点时是否工作? – DVK

0

更改此行

<asp:TextBox ID="StartDate" class="form-control dateField" placeholder="Fecha" AutoPostBack="True" required runat="server" OnTextChanged="EndDate_TextChanged"></asp:TextBox> 

,这将是好的。

+0

对不起,它不起作用。其他东西丢失... –

+0

首先让我知道你想触发startdate_textchanged或enddate_textchanged? –

+0

而当你离开这个文本框时,textchanged事件触发,即写入一些文本,然后按Tab或点击文本框外的任何地方,它会触发事件textChanged 谢谢 –

0

默认ASP.Net页面缓存所有的服务器控件改变事件和回发事件之后执行。 因此,通过将控件的Autopostback属性设置为true来覆盖此默认值,如下所示。

enter image description here

+0

对不起,男人,它不工作我不知道为什么...我找到了另一种解决方案。谢谢 –

相关问题