2016-08-03 3 views
0

Я использую TextBox WebForm Control сконфигурирован как Bootstrap Datetimepicker. И мне нужно инициировать серверную сторону TextChanged событие. Код, который у меня есть, не работает, поэтому он не вызывает сторону сервера.Как вызвать TextChanged из TextBox Управление WebForm

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 стрелять, когда вы выходите из текстового поля, вы должны установить AutoPostBack свойство элемента управления TextBox к действительности.

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

Если вы удалите сборщик datetime и просто введите текст в текстовое поле, будет ли он работать, когда он потеряет фокус? – 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 кэширует все управление сервером изменили события и выполняется после Postback события. Так переопределите это значение по умолчанию, установив для свойства Autopostback элемента управления значение true, как показано ниже.

enter image description here

+0

Извините, человек не работает. Я не знаю, почему ... Я нашел другое решение. благодаря –

Смежные вопросы