【问题标题】:JQGrid context menu for each cell每个单元格的 JQGrid 上下文菜单
【发布时间】:2011-06-22 07:24:28
【问题描述】:

我使用上下文菜单允许用户对 JQGrid 中的单元格执行不同的操作:

function showContextMenu(rowId)
{
    menu1 = [ {'View':function(menuItem,menu) { alert("You clicked View!"); } },
              $.contextMenu.separator, 
              {'Upload':function(menuItem,menu) { alert("You clicked Upload!"); }},
                $.contextMenu.separator,
                {'Remove':function(menuItem,menu) { alert("You clicked Remove!"); }}
               ];


    $('#' + rowId).contextMenu(menu1,{theme:'vista'}); 

事件

onRightClickRow : function(rowid,iRow,iCol,e){
     showContextMenu(rowid,iCol);
}

它有效,但笨拙:它需要双击右键的问题 - 因为在第一次点击时(如果我理解正确) - 绑定功能并且仅在第二次 - 显示菜单上。 我已经尝试使用

gridComplete : function {
 var dataIds = $('#list').jqGrid('getDataIDs');
for (var i = 0;i < dataIds.length; i++) {
showContextMenu(dataIds[i]);
 }

但在这种情况下,我无法收到 iCol。可以有什么解决办法? 谢谢。

【问题讨论】:

    标签: jquery jqgrid contextmenu row cell


    【解决方案1】:

    您必须为行和单元格指定值。

    var dataIds = jQuery('#list').jqGrid('getDataIDs');
     var countCols = jQuery('#list').jqGrid('getGridParam', 'colNames').length;
     for (var i = 0;i < dataIds.length ; i++) {
        for (j=0;j<= countCols;j++)
           showContextMenu(dataIds[i],i+1,j);
     }
    

    并改变功能

    function showContextMenu(rowid,iRow,iCol){
            menu1 = [ {'Yahoooo!':function(menuItem,menu) { 
            alert(rowid+" — "+iRow+" — "+iCol);
            } }];
    jQuery("tr#"+rowid+" td").eq(iCol).contextMenu(menu1,{theme:'osx'});};
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-28
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多