PageMethod больше не вызывается после добавления UpdatePanel на страницу - PullRequest
1 голос
/ 04 марта 2009

Я использую 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 ]

1 голос
/ 04 марта 2009

Я понял это, и это была проблема конфигурации. Конкретно мне нужно было добавить:

<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>

внутри раздела .

Я думал, что правильно настроил сайт, но решил пошагово просмотреть документацию .

1 голос
/ 04 марта 2009

Попробуйте установить режим обновления как условный на панели обновлений. Похоже, панель обновлений захватывает ваши события.

<asp:UpdatePanel ID="upMyPanel" UpdateMode="Conditional" runat="server">
...