PageMethod não é chamado após a adição de UpdatePanel para uma página
-
03-07-2019 - |
Pergunta
Eu estou usando asp.net ajax versão 1.0 em asp.net 2.0. (Eu ainda não pode atualizar para o 3.5)
Eu tinha um PageMethod que são chamados por Javascript. Isso funcionou perfeitamente até que eu adicionei um UpdatePanel para outra parte da página. Agora, quando eu executar a página com debug ligado O ponto de interrupção no PageMethod nunca é chamado. quando eu olho no Firebug para o que é retornado quando o correio para o PageMethod é chamado, noto que a página aspx inteira é devolvido em vez de apenas o valor chamadas. O que eu fiz?
Aqui está a chamada JavaScript para o 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);
}
O ponto de ter a função EndRequestHandler chamado no final de cada pedido é que o item com o id '#selectedCHK' está dentro do painel de atualização e o evento precisa ser ajustado cada vez que o UpdatePanel é atualizado.
Solução 2
Eu descobri isso e foi um problema de configuração. Especificamente eu precisava para adicionar:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
dentro do
Eu pensei que eu tinha configurado o site corretamente, mas eu decidi ir através do documentação passo a passo.
Outras dicas
Tente configurar a UpdateMode a condicional no seu painel de atualização. Soa como o painel de atualização é sequestrando os seus eventos.
<asp:UpdatePanel ID="upMyPanel" UpdateMode="Conditional" runat="server">