2013-08-20 3 views
0

Я использую этот Jquery DatePickerобновление панели, добавить функцию, которая работает после обновления

У меня есть вход в UpdatePanel

<input id="DateMask" type="text" /> 

и JS код:

function SetD() { 
    alert(1); 
} 

$(document).ready(function() { 
    SetD(); 
    $("#datepicker").datepicker({ 
     changeMonth: true, 
     changeYear: true 
    }); 
}); 

Но проблема в том, что когда я отправляю свою форму на сервер, я только обновляю панель обновлений, поэтому $(document).ready(function() не работает после обновления, поэтому, где я могу выполнить свою функцию?

+1

возможно дубликат [Asp.Net UpdatePanel в Gridview Jquery DatePicker] (http://stackoverflow.com/questions/3341623/asp-net-updatepanel -in-gridview-jquery-datepicker) – Aristos

ответ

2

Вам нужно переустановить событие Sys.WebForms.PageRequestManager.add_endRequest. Посмотрите похожие фотографии jQuery $(document).ready and UpdatePanels?

+0

Спасибо работ отлично видел ссылку))))) – user2114177

+1

Спасибо! Это был мой первый ответ на SO, и вы его приняли :-) Спасибо, что начали меня! – guymid

1

Чтобы сделать его работу, вам необходимо повторно инициализировать его после обновлений UpdatePanel. Вы можете сделать это, используя функции UpdatePanel. Я также хотел бы здесь отметить, что вам также необходимо отменить его непосредственно перед обновлением UpdatePanel, чтобы избежать утечек памяти.

<script type="text/javascript"> 
    // if you use jQuery, you can load them when dom is read. 
    $(document).ready(function() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance();  
     prm.add_initializeRequest(InitializeRequest); 
     prm.add_endRequest(EndRequest); 

     // Place here the first init of the DatePicker 
     InitDatePicker(); 
    });   

    function InitializeRequest(sender, args) { 
     // make unbind to avoid memory leaks. 
     $("#datepicker").unbind(); 
    } 

    function EndRequest(sender, args) { 
     // after update occur on UpdatePanel re-init the DatePicker 
     InitDatePicker(); 
    } 


    function InitDatePicker() 
    { 
     $("#datepicker").datepicker({ 
      changeMonth: true, 
      changeYear: true 
     });  
    } 
</script> 

Почти тот же самый вопрос, но на GridView: Asp.Net UpdatePanel in Gridview Jquery DatePicker

+1

спасибо вам))))))) – user2114177