2016-08-03 3 views
0

Ich verwende TextBox WebForm Control wie ein Bootstrap Datetimepicker konfiguriert. Und ich muss Server-Seite TextChanged Ereignis initiieren. Der Code, den ich habe funktioniert nicht, so dass es nicht Server-Side-Teil aufrufen.So rufen Sie TextChanged von TextBox WebForm Steuerelement

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 :(  
} 

Ich versuche, wie dies dieses Ereignis zu zwingen, aber keine Freude.

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    
}); 

Jede Ahnung, wie man es beheben?

+1

Ihre HTML sagt OnTextChanged = "StartDate_TextChanged" aber Ihr Server Methode EndDate_TextChanged ist? – Steve

Antwort

0

Name der Methode nicht korrekt, fügen autopostback= 'true' zu Textbox

+0

Tut mir leid, es funktioniert nicht. Etwas fehlt sonst noch ... –

+0

Entschuldigung dafür. Verwenden Sie die Bibliothek validation js? –

+0

Nein, ich benutze es nicht. –

0

Damit das Textchanged-Ereignis ausgelöst, wenn Sie die Textbox verlassen, müssen Sie die TextBox Kontrolle des Autopostback-Eigenschaft auf true gesetzt.

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> 

Sie müssen auch sicherstellen, dass der Name der Event-Handler für OnTextChanged den Namen der Methode in Ihrem Code entspricht (vielleicht war dies nur ein Tippfehler).

Schließlich habe ich festgestellt, dass das TextChanged-Ereignis ein wenig heikel ist und unerwünschte Postbacks, Seitenumbrüche, Fokusverlust usw. verursacht. Daher sollten Sie eine clientseitige Lösung (z. B. JQuery) in Erwägung ziehen. stattdessen.

+0

Tut mir leid, es funktioniert nicht. Etwas fehlt sonst ... –

+0

Wenn Sie die Datetime-Auswahl entfernen und nur in das Textfeld eingeben, funktioniert es, wenn es den Fokus verliert? – DVK

0

Ändern Sie diese Zeile zu

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

und es wird in Ordnung sein.

+0

Tut mir leid, es funktioniert nicht. Etwas fehlt sonst noch ... –

+0

Lass mich zuerst wissen, dass du fire startdate_textchanged oder enddate_textchangeed willst? –

+0

Und das textchanged Ereignis ausgelöst, wenn Sie dieses Textfeld verlassen, dh schreiben Sie etwas Text und drücken Sie dann Tab oder klicken Sie außerhalb des Textfelds wo und es wird das Ereignis textChanged Danke –

0

standardmäßig ASP.Net Seite speichert der alle Serversteuerereignisse geändert und führt nach dem Postback-Ereignis. Setzen Sie diesen Standardwert außer Kraft, indem Sie die Autopostback-Eigenschaft eines Steuerelements wie unten auf true festlegen.

enter image description here

+0

Sorry Mann, es funktioniert nicht Ich weiß nicht warum ... Ich fand eine andere Lösung. Vielen Dank –

Verwandte Themen