2010-12-15 5 views
0

У меня есть страница asp.net, где я связываюсь в файле разметки js. Js-файл, работающий с набором функций в основном по имени класса. В этих функциях я получаю данные с сервера с использованием WCF и изменяю только состояние и данные о состоянии. Также на странице я делаю обратную передачу. Все в порядке, но мои функции jquery не работают после этого. После обратной передачи я добавляю только строку в сетку, которая не связана с логикой jquery.ASP.NET теряет привязки jquery после обратной передачи

Но когда я изменил мою логику от

$ (документ) .ready (функция()

$jq("#ctrlID").change(function() { });) 

в

$ (документ) .ready (функция()

$jq("#ctrlID").live('change', function() { });) 

все работает нормально.

Я озадачен. Что это? Я не добавляю элементы управления

ответ

2

$ (document) .ready() выполняется, когда DOM готов. Однако он не будет запускать ajax async postbacks, поэтому все ваши привязки будут потеряны. Live() по существу сохраняет ваши привязки «активными» в любое время. Другим решением было бы использовать событие на стороне клиента pageLoad(), которое является частью среды клиента ASP.NET. Этот метод срабатывает при нормальных и частичных обратных передачах, и вы можете связывать свои события там, как обычно.

function pageLoad(sender, args) 
{ 
// Your event bindings here 
} 

Вы также можете использовать args.get_isPartialLoad(), чтобы определить, если вы находитесь в постбэка или асинхронном постбэка.

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