JqG​​rid PHP:如何实现右键单击上下文菜单?

时间:2014-02-03 16:18:44

标签: php jquery jqgrid contextmenu jqgrid-php

如何在JqGrid for PHP中实现righ-click 上下文菜单

我正在this solution尝试Oleg,但它无效。 我想得到这个:

enter image description here


grid.php 片段:

$rightclick = <<<RIGHTCLICK
    function () {
    $("tr.jqgrow", this).contextMenu('myMenu1', {
        bindings: {
            'edit': function (trigger) {
                // trigger is the DOM element ("tr.jqgrow") which are triggered
                grid.editGridRow(trigger.id, editSettings);
            },
            'add': function ( /*trigger*/ ) {
                grid.editGridRow("new", addSettings);
            },
            'del': function (trigger) {
                if ($('#del').hasClass('ui-state-disabled') === false) {
                    // disabled item can do be choosed
                    grid.delGridRow(trigger.id, delSettings);
                }
            }
        },
        onContextMenu: function (event /*, menu*/ ) {
            var rowId = $(event.target).closest("tr.jqgrow").attr("id");
            //grid.setSelection(rowId);
            // disable menu for rows with even rowids
            $('#del').attr("disabled", Number(rowId) % 2 === 0);
            if (Number(rowId) % 2 === 0) {
                $('#del').attr("disabled", "disabled").addClass('ui-state-disabled');
            } else {
                $('#del').removeAttr("disabled").removeClass('ui-state-disabled');
            }
            return true;
        }
    });
}
RIGHTCLICK;

$grid->setGridEvent('loadComplete ', $rightclick);

有没有办法在JqGrid for PHP中获取上下文菜单?

1 个答案:

答案 0 :(得分:2)

首先,您的代码有不必要的空间:'loadComplete '而不是'loadComplete'

我可以再重复一次,我自己不使用PHP,也不要使用JqGrid的setGridEvent。所以我只能猜测$grid->setGridEvent可能无法正确转发this。在这种情况下,您可以使用setGridParam动态设置回调(请参阅the answer)或使用jqGridLoadComplete事件代替loadComplete回调(请参阅the answer)。< / p>