2016-08-03 73 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

對不起,男人,它不工作我不知道爲什麼...我找到了另一種解決方案。謝謝 –

相關問題