jqGrid - 确定右键单击jqGrid中单元格的列名称

时间:2017-07-26 08:05:29

标签: jquery jqgrid

因此,当打开右键单击表格中任何单元格时打开的上下文菜单时,我必须获取列名称。我找到了这个答案fillna,它只适用于列标题。

我的代码到目前为止

loadComplete: function () {
                    $('tr.jqgrow').contextMenu('myMenu2', {
                        bindings: {
                            CA: function(trigger) {
                                var cm = $('#' + MY_GRID ).jqGrid("getGridParam", "colModel");
                                //CODE SHOULD BE ADDED HERE -- to get the column name and pass to addToContext();
                                var rowData = jQuery('#' + MY_GRID ).jqGrid ('getRowData', trigger.id);
                                addToContext(rowData);
                            }
                        }
                    });
                },

也试过这段代码,但我得到了未定义的

var cellName = $(trigger).closest('td').attr('aria-described-by');

1 个答案:

答案 0 :(得分:1)

您可以使用onContextMenu使用aria-describedby attrinute来确定列名称

    ....contextMenu('contextMenu', {
        bindings: {
            'edit': function (t,c) {
                console.log(colname)
                editRow();
            },
            'add': function (t) {
                addRow();
            },
            'del': function (t) {
                delRow();
            }
        },
        onContextMenu: function (event) {
            colname = $(event.target).attr('aria-describedby');
            colname = colname.substr(gridId.length + 1);
            return true;
        }
    });

其中colname是全局定义的,gridId是没有#

的网格的id

P.S。如果单元格中的内容复杂,则更换

是正确的
$(event.target).attr('aria-describedby');

$(event.target).closest('td').attr('aria-describedby');