Domanda

Sto usando asp.net ajax versione 1.0 su asp.net 2.0. (Non riesco ancora a passare a 3.5)

Avevo un PageMethod che sarebbe stato chiamato da Javascript. Questo ha funzionato perfettamente fino a quando non ho aggiunto un UpdatePanel a un'altra parte della pagina. Ora, quando eseguo la pagina con il debug attivato, il punto di interruzione nel metodo page non viene mai chiamato. quando guardo in firebug ciò che viene restituito quando viene chiamato il post nel PageMethod, noto che viene restituita l'intera pagina aspx anziché solo il valore delle chiamate. Cosa ho fatto?

Ecco la chiamata Javascript al 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);
}

Il punto di avere la funzione EndRequestHandler chiamata alla fine di ogni richiesta è che l'elemento con l'id '#selectedCHK' sia all'interno del pannello di aggiornamento e che l'evento debba essere impostato ogni volta che UpdatePanel viene aggiornato.

È stato utile?

Soluzione 2

L'ho capito ed era un problema di configurazione. In particolare, dovevo aggiungere:

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

all'interno di < system.web > sezione.

Pensavo di aver configurato correttamente il sito ma ho deciso di passare attraverso documentazione passo dopo passo.

Altri suggerimenti

Prova a impostare la modalità di aggiornamento su condizionale sul pannello di aggiornamento. Sembra che il pannello di aggiornamento stia dirottando i tuoi eventi.

<asp:UpdatePanel ID="upMyPanel" UpdateMode="Conditional" runat="server">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top