Я активно внедряю JQuery в нашу систему CRM. В процессе я создаю рамочную панель с простой кнопкой в заголовке, которая сворачивает или расширяет содержимое в зависимости от его текущего состояния. Теперь, чтобы вспомнить состояние панели, я использую библиотеку cookie jquery, которая при отправке страницы устанавливает cookie для этого элемента управления, а затем, когда страница перезагружается, она считывает и сбрасывает панель в ее последнее состояние.
Первая проблема заключалась в том, что JQuery выполнялся при отправке страницы, потому что ASP.NET берет на себя это и не вызывает функции submit () в форме. Чтобы преодолеть это, я нашел http://kenbrowning.blogspot.com/2009/01/supporting-jquerys-formsubmit-in-aspnet.html, который, казалось, работал почти безупречно.
Однако ... После дальнейшего тестирования я обнаружил, что это предотвратит любые обратные передачи, которые должны происходить в UpdatePanel, для выполнения полной обратной передачи вместо асинхронной обратной передачи с панели. Я понимаю, что UpdatePanels сейчас немного устарели, но они усеяны по всему нашему сайту, поэтому для использования этого элемента управления ему будет приятно с ними работать.
Итак, есть ли какой-то способ определить, произошла ли асинхронная обратная передача? В основном я хочу иметь возможность сделать что-то вроде этого:
if (IsAsyncPostback) {
theForm.submit(); //this seems to still fire the async postback, but doesn't call the jquery which is setup to save the state..
} else {
$(theForm).submit(); //this is from the link, which cause all postbacks to be full on postbacks, even if they are in an updatepanel
}
Помогите, я искал вокруг и не смог найти ничего полезного .. Конечно, я не могу быть единственным человеком, который попробовал это?