2013-02-19 194 views
0

我正在使用此代码绑定asp.net gridview与右击使用jQuery contextmenu,但每次当我点击它(使用菜单列表中的选项)它重新加载页面。如果我想使用UpdatePanel,该怎么办?为UpdatePanel添加jquery点击事件

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(); 
     } 
    }); 

回答

0

使用jQuery的直播功能,通过此链接

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

谢谢您的帮助里面的UpdatePanel事件

去绑定。但是我仍然无法使用这个实时功能。如果您需要使用实时功能,请告诉我在上面的代码中应该做些什么改变将不胜感激。 – user2036892 2013-02-19 12:44:01