1

asp.net 2.0でasp.net ajaxバージョン1.0を使用しています。(まだ 3.5 にアップグレードできません)

Javascript によって呼び出される PageMethod がありました。ページの別の部分に UpdatePanel を追加するまで、これは完全に機能しました。デバッグをオンにしてページを実行すると、ページメソッドのブレークポイントが呼び出されません。PageMethod への投稿が呼び出されたときに返されるものを firebug で調べると、呼び出し値だけでなく、aspx ページ全体が返されていることがわかります。私が何をした?

PageMethod への Javascript 呼び出しは次のとおりです。

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 関数を呼び出すポイントは、ID が「#selectedCHK」のアイテムが更新パネル内にあり、UpdatePanel が更新されるたびにイベントを設定する必要があることです。

4

2 に答える 2

1

私はこれを理解しましたが、それは構成の問題でした。具体的には、次を追加する必要がありました。

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

<system.web> セクション内。

サイトを適切に構成したと思っていましたが、ドキュメントを段階的に確認することにしました。

于 2009-03-04T19:07:21.853 に答える
1

Try setting the updatemode to conditional on your update panel. Sounds like the update panel is hijacking your events.

<asp:UpdatePanel ID="upMyPanel" UpdateMode="Conditional" runat="server">
于 2009-03-04T18:38:39.660 に答える