0

jQueryを使用して右クリックコンテキストメニューでasp.netグリッドビューをバインドするためにこのコードを使用していますが、クリックするたびに(メニューリストのオプションを使用)、ページがリロードされます。を使用したい場合はどうすればよいUpdatePanelですか?

    function fnView() {
        var lnkView = document.getElementById('<%=lnkView.ClientID %>');
        var hiddenField = document.getElementById('<%=fldProductID.ClientID %>');
        hiddenField.value = $("div").filter("[type=ContextMenu]")[0].id.replace("Menu", "");
        lnkView.click();
    }
    function fnDelete() {
        var lnkDelete = document.getElementById('<%=lnkDelete.ClientID %>');
        var hiddenField = document.getElementById('<%=fldProductID.ClientID %>');
        hiddenField.value = $("div").filter("[type=ContextMenu]")[0].id.replace("Menu", "");
        lnkDelete.click();
    }

    jQuery.fn.setEvents = function (e) {
        var me1 = jQuery(this);
        return this.each(function () {
            var me = jQuery(this);
            me.click(function (e) {
                $("div").filter("[type=ContextMenu]").hide();
                fnSetMenu(me.children(':first-child').text(), e.pageX, e.pageY);
            });
        });
    };
    function fnSetMenu(productID, left, top) {
        if ($("#Menu" + productID).html() == null) {
            var strMenuHTML = "<div type=\"ContextMenu\" id=\"Menu" + productID + "\" class=\"contextMenuClass\" mouseonmenu=\"1\"><table style='width:100%;'><tr><td onclick=fnView()>View Product</td></tr><tr><td onclick=fnDelete()>Delete Product</td></tr></table></div>";
            $("body").append(strMenuHTML);
            $.post("MenuHandler.ashx", {}, function (response) {
                $("#Menu" + productID).html(response);
            });
        }
        $("#Menu" + productID).css({ top: top + "px", left: left + "px" }).show();
    }

    $(document).ready(function () {
        $("#gvProducts tr.ShowContext").setEvents();
    }
    );
    $(document).click(function (e) {
        $clicked = $(e.target);
        if (!($clicked.parents().hasClass("ShowContext") || $clicked.hasClass("contextMenuClass") || $clicked.parents().hasClass("contextMenuClass"))) {
            $("div").filter("[type=ContextMenu]").hide();
        }
    });
4

1 に答える 1

0

jQuery の live 関数を使用して updatepanel 内のイベントをバインドします

また

このリンクをたどってください

http://stackoverflow.com/questions/256195/jquery-document-ready-and-updatepanels
于 2013-02-19T11:34:05.030 に答える