4

updatepanelを使用して非同期ポストバックを行っています。非同期ポストバック jQuery 機能が動作しない後。私は jQuery を使用して、UpdatePanel 内にある HTML テーブル セルにいくつかの mousedown mouseenter 効果を結び付けています。イベントは $(document).ready にバインドされています

     <script type="text/javascript">

                $(function ()



     {
    $(".csstablelisttd").mousedown(function (e)
                        {
    //mouse down code
    });
 $(".csstablelisttd").mouseenter(function (e)
                        {
    //mouse entercode
    });
                        $("#contentPlaceHolderMain_btnFix").click(function (e)
                        {alert("Alert");//here alert is generate two times an then postback occurs
                           //btn click code
                        }
                    }

            </script>

    <asp:UpdatePanel ID="updatePanelTableAppointment" runat="server">
                            <ContentTemplate>
         <table id="table" runat="server">
             //table data
            </table>

                        </ContentTemplate><Triggers>
                            <asp:AsyncPostBackTrigger ControlID="btnFix" EventName="Click" />
                        </Triggers>
                    </asp:UpdatePanel>
4

2 に答える 2

4

asp:UpdatePanelコンテンツをサーバーから返された結果に置き換えます。これは、以前にフックされたすべてのイベントがポストバック後に機能しないことを意味します。

jQuery.on()代わりに使用してください。

例えば:

<script type="text/javascript">
$(function () {

    $("#table").on("mousedown mouseenter", ".csstablelisttd", function (e) {
        //mouse down AND mouse enter code
    });

    $("#contentPlaceHolderMain_btnFix").on("click", function (e) {
        alert("Alert");//here alert is generate two times an then postback occurs
        //btn click code
    });
});
</script>

注: マウス ダウンとマウス エンター コードが異なる場合は、それらを分割してください。

内に存在する、含めるすべてのイベント フックに対して同じことを行いUpdatePanelます。

于 2012-07-03T10:33:09.653 に答える
2

Toolkit が提供する ajax endRequest のイベント ハンドラーを追加する必要があります。ここでもっと読む

ページの読み込み時に実行される Javascript ブロックに追加します。

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);

function endRequestHandle(sender, Args)
{
     alert("After ajax call");
}
于 2012-07-03T10:35:05.113 に答える