Добавление контекстного меню в onRightClickRow в jqGrid - PullRequest
2 голосов
/ 11 ноября 2011

У меня проблемы с добавлением контекстного меню в мой jqGrid в событии onRightClick.После щелчка правой кнопкой мыши по ячейке я хотел бы получить значения rowid, iRow и iCol из события onRightClickRow.

Однако проблема, с которой я сталкиваюсь, заключается в том, что при первом щелчке правой кнопкой мыши по ячейке вСетка в контекстном меню не появляется.Во второй раз, когда я щелкаю правой кнопкой мыши по ячейке, отображается контекстное меню, но значения rowid, iRow и iCol - все для первой ячейки, которая была нажата правой кнопкой мыши.Таким образом, rowid, iRow и iCol никогда не совпадают с ячейкой, по которой щелкают правой кнопкой мыши.

Для контекстного меню я использую jquery.contextmenu.r2.js

Вот код jqGridчто у меня есть.

jQuery("#list").jqGrid({
    url:urlPath,
    datatype:"json",
    mtype:'GET',
    jsonReader: {
        root: function (obj) { return obj.result; },
        id: dataID,
        repeatitems: false,
        page:  function(obj) { return 1; },
        total: function(obj) { return 1; },
        records: function(obj) { return obj.result.length; }        
    },
    colNames: columnNames,
    colModel: columnModel,
    onRightClickRow: function (rowid, iRow, iCol, e) {
        jQuery("#list").contextMenu('rightClickMenu', {
            bindings: {
                'DisplayiRow': function(t) {
                    alert('DisplayiRow: ' + iRow);   
                },
                'DisplayiCol': function(t) {
                    alert('DisplayiCol: ' + iRow);
                }
            }
        })
    },
    scroll:1,
    headertitles: true,
    pager: '#pager',
    shrinkToFit: false,
    autowidth: true,
    height: gridHeight,
    sortable: true,
    sortorder: 'desc',
    viewsortcols:[true,'vertical', true],
    viewrecords: true,
    gridview: true,
    loadonce: true
  });
  jQuery("#list").jqGrid('filterToolbar', {searchOnEnter:false,defaultSearch:'cn'});
});

HTML это

<div class="contextMenu" id="rightClickMenu" style="display:none">
    <ul>
       <li id="DisplayiRow">
           DisplayiRow</li>
       <li id="DisplayiCol">
           DisplayiCol</li>
   </ul>
</div>

Есть ли способ добавить контекстное меню правой кнопкой мыши на событие onRightClickRow, чтобы я мог получить rowid, iRow,и значения iCol ячейки, по которой щелкнули?

1 Ответ

4 голосов
/ 11 ноября 2011

Посмотрите на старый ответ , который содержит демо .Я надеюсь, что это поможет решить вашу проблему.Я уверен, что связывание contextMenu внутри loadComplete - не единственное решение проблемы, но оно работает очень хорошо.

Более того, я рекомендую вам использовать плагин контекстного меню из pluginsподкаталог источника jqGrid.Это версия, протестированная с jqGrid, и я не вижу смысла использовать другую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...