为UpdatePanel添加jquery单击事件

时间:2013-02-19 10:53:52

标签: c# jquery asp.net

我正在使用此代码使用jQuery右键单击contextmenu来绑定asp.net gridview,但每次单击它时(使用菜单列表中的选项)它都会重新加载页面。如果我想使用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();
        }
    });

1 个答案:

答案 0 :(得分:0)

使用jQuery的实时函数绑定updatepanel内的事件

浏览此链接

http://stackoverflow.com/questions/256195/jquery-document-ready-and-updatepanels