У меня есть веб-страница, где я использую jQuery UI datepicker в текстовом поле asp.net, которое находится внутри UpdatePanel. Вот описание того, что я делаю грубо
<script type="text/javascript">
$(document).ready( function() { $(".datepicker").datepicker(); } );
</script>
<asp:UpdatePanel ... >
...
<asp:TextBox runat="server" CssClass="datepicker" />
<asp:Button runat="server" />
...
</asp:UpdatePanel>
Когда я впервые загружаю страницу, все работает нормально. При нажатии внутри текстового поля появляется датапикер. Но когда я нажимаю кнопку и выполняется async postback, датапикер больше не появляется, когда я снова нажимаю поле.
Я знаю, что проблема в том, что UpdatePanel полностью заменяет все содержимое HTML, когда оно обновляется, поэтому на самом деле это новое текстовое поле, которое не было инициализировано функцией datepicker.
Я предполагаю, что я не должен использовать $(document).ready() здесь, чтобы инициализировать мои datepickers, но где хорошее место для размещения кода инициализации? Или есть способ, с помощью которого можно перезапустить код инициализации после обновления AJAX?