PageMethod больше не вызывается после добавления UpdatePanel на страницу
-
03-07-2019 - |
Вопрос
Я использую asp.net ajax версии 1.0 на asp.net 2.0. (Я пока не могу обновить до 3.5)
У меня был PageMethod, который вызывался через Javascript. Это работало отлично, пока я не добавил UpdatePanel в другую часть страницы. Теперь, когда я запускаю страницу с включенной отладкой, точка останова в методе страницы никогда не вызывается. Когда я смотрю в firebug на то, что возвращается, когда вызывается сообщение в PageMethod, я замечаю, что возвращается только страница aspx, а не только значение для вызовов. Что я сделал? Р>
Вот вызов Javascript для PageMethod:
function EndRequestHandler(sender, args) {
$('#selectedCHK').change(
function() {
var chkedInput = $('#selectedCHK');
var networkRead = chkedInput[0].checked;
PageMethods.ChangeSelectedNetworkReadFlag(routeNum,
networkRead,
function(msg) { alert(msg); });
}
);
}
$(document).ready(function() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
Смысл функции EndRequestHandler, вызываемой в конце каждого запроса, заключается в том, что элемент с идентификатором '#selectedCHK' находится внутри панели обновления, и событие необходимо устанавливать каждый раз при обновлении UpdatePanel. Р>
Решение 2
Я понял это, и это была проблема конфигурации. Конкретно мне нужно было добавить:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
внутри < system.web > раздел. р>
Я подумал, что правильно настроил сайт, но решил пройти через документация пошагово.
Другие советы
Попробуйте установить режим обновления как условный на панели обновлений. Похоже, панель обновлений захватывает ваши события.
<asp:UpdatePanel ID="upMyPanel" UpdateMode="Conditional" runat="server">