2009-03-04 6 views
1

ich asp.net Ajax-Version 1.0 auf 2.0 asp.net verwenden. (Ich kann noch nicht ein Upgrade auf 3,5)Pagemethod nicht mehr wird nach Zugabe von Update zu einer Seite namens

ich ein Pagemethod hatte, die von Javascript genannt bekommen würde. Dies funktionierte perfekt, bis ich ein UpdatePanel zu einem anderen Teil der Seite hinzugefügt habe. Jetzt, wenn ich die Seite mit aktiviertem Debug laufen lasse, wird der Haltepunkt in der Pagemethode nie aufgerufen. Wenn ich in Firebug nach dem sehe, was beim Aufruf des PageMethods zurückgegeben wird, bemerke ich, dass die gesamte aspx-Seite zurückgegeben wird und nicht nur der Aufrufwert. Was habe ich gemacht?

Hier ist der Javascript Aufruf der 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); 
} 

Der Punkt der EndRequestHandler Funktion am Ende jeder Anforderung aufgerufen hat, dass das Element mit dem id ‚#selectedCHK‘ innerhalb des Update-Panel ist und das Ereignis muss jedes Mal gesetzt werden, wenn das UpdatePanel aktualisiert wird.

+0

Können Sie ein wenig mehr Details darüber, wo die Seite Methode aufgerufen wird, und wie? Vielleicht ein Codebeispiel? –

+0

@Andrew; Danke für den Hinweis Ich habe gerade den Code hinzugefügt. – minty

Antwort

1

Ich habe das herausgefunden und es war ein Konfigurationsproblem. Insbesondere musste ich hinzufügen:

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

innerhalb des <system.web> Abschnitt.

Ich dachte, dass ich die Website richtig konfiguriert hatte, aber ich beschlossen, durch den documentation Schritt für Schritt zu gehen.

1

Versuchen Sie, die Update bedingter auf Ihrem Update-Panel einstellen. Klingt wie das Update-Panel Ihre Ereignisse entführt.

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

Vielen Dank an @RSolberg für Ihre Hilfe Ich weiß nichts über UpdateMode. – minty