2011-11-16 80 views
0

如何在jqGrid中获取动态上下文菜单?我需要显示偶数行的'menu1'和奇数行的'menu2'?我试图使用contextmenu插件,但不知道如何实现两个上下文菜单之间的动态切换。谢谢。jqGrid中的动态上下文菜单

+0

有一些你到目前为止的代码? –

回答

0

好吧,你已经有contextmenu工作,但需要定义,如果行是偶数或奇数。

尝试以下操作:

afterInsertRow: function(rowId, rowData, rowElm) { 
    var trElement = $('#' + rowid); 
    if(trElement.is(':even')) 
    // even contextMenu 
    else 
    // odd contextMenu 
} 
0

如果你真的需要绑定的偶数行只是“菜单1”和“MENU2”的奇数行可以实现结合网格行的loadComplete内。例如,如果你有

<div class="contextMenu" id="myMenu1" style="display:none"> 
    <ul style="width: 200px"> 
     <li id="edit1"> 
      <span class="ui-icon ui-icon-pencil" style="float:left"></span> 
      <span style="font-size:11px; font-family:Verdana">Edit Row 1</span> 
     </li> 
     <li id="del1"> 
      <span class="ui-icon ui-icon-trash" style="float:left"></span> 
      <span style="font-size:11px; font-family:Verdana">Delete Row 1</span> 
     </li> 
    </ul> 
</div> 
<div class="contextMenu" id="myMenu2" style="display:none"> 
    <ul style="width: 200px"> 
     <li id="edit2"> 
      <span class="ui-icon ui-icon-pencil" style="float:left"></span> 
      <span style="font-size:11px; font-family:Verdana">Edit Row 2</span> 
     </li> 
     <li id="del2"> 
      <span class="ui-icon ui-icon-trash" style="float:left"></span> 
      <span style="font-size:11px; font-family:Verdana">Delete Row 2</span> 
     </li> 
    </ul> 
</div> 

可以使绑定,

loadComplete: function() { 
    $("tr:even", this).contextMenu('myMenu1', { 
     bindings: { 
      'edit1': function(trigger) { 
       alert ("Edit (menu1) id=" + trigger.id); 
      }, 
      'del1': function(trigger) { 
       alert ("Delete (menu1) id=" + trigger.id); 
      } 
     } 
    }); 
    $("tr:odd", this).contextMenu('myMenu2', { 
     bindings: { 
      'edit2': function(trigger) { 
       alert ("Edit (menu2) id=" + trigger.id); 
      }, 
      'del2': function(trigger) { 
       alert ("Delete (menu2) id=" + trigger.id); 
      } 
     } 
    }); 
} 

the demo