Как сохранить JavaScript после частичной обратной передачи UpdatePanel

В нем много кода, поэтому я хочу кратко объяснить проблему на словах. У меня есть главная страница, которая включает в себя все ссылки на файлы JavaScript и есть страницы, которые используют главную страницу. Я использую панель обновлений на своих страницах, и внутри панели обновлений есть несколько форм, в том числе одна из которых имеет возможность обратной передачи (т.е. выпадающий список). Проблема в том, что, когда состояние изменяется и происходит частичная обратная передача, формы, которые имеют некоторые возможности и эффекты из-за этих javascript-сценариев, теряют всю функциональность. Любая помощь будет оценена.

1 ответ

Это связано с тем, что после частичной публикации на панели "Обновление" необходимо повторно инициализировать JavaScript. Вот общий пример

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

    function InitializeRequest(sender, args) {
    }

    function EndRequest(sender, args) {
       // after update occur on UpdatePanel re-init what you need

    }
</script> 

Относительные вопросы:
Asp.Net UpdatePanel в Gridview Jquery DatePicker
Как получить Id панель обновления, которая инициализирует запрос в javascript

После Net 4 вы также можете просто использовать pageLoad Функция похожа на функцию OnLoad, но обрабатывается asp.net и вызывается при первой загрузке страницы, но также вызывается после каждого обновления ajax.

function pageLoad()
{
    // init here your javascript
    // This is called when the page load first time
    //  and called again each time you have an Update inside an UpdatePanel
}

ссылка: http://msdn.microsoft.com/en-us/library/bb386417(v=vs.100).aspx

Другие вопросы по тегам