jqGrid中的动态上下文菜单

Dynamic context menu in jqGrid

本文关键字:上下文 菜单 动态 jqGrid      更新时间:2023-09-26

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

如果你真的需要绑定'menu1'偶数行和'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);
            }
        }
    });
}

好的,所以你已经有了上下文菜单的工作,但需要定义如果行是偶数或奇数。

尝试以下操作:

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