jqGrid - determine name of column on right click of a column in jqGrid

jqgrid

Solution

You can bind `contextmenu` event to all column headers. Every header is `<th>` element and so its DOM support cellIndex property. The cellIndex property gives you the index of column header. If you would use the same index in `colModel` you will get the definition of the column. The `name` property gives you the column name.

The corresponding code could be about the following:

var cm = $grid.jqGrid("getGridParam", "colModel");
$("th.ui-th-column", $grid[0].grid.hDiv).bind('contextmenu', function(e) {
    var $th = $(e.currentTarget).closest("th");
    if ($th.length > 0) {
        alert("the header of the column '" + cm[$th[0].cellIndex].name +
            "' was clicked");
        e.preventDefault(); // don't display standard context menu
    }
});

The demo uses the code. Just use the right mouse click on the column header and you will see the results:

Problem

I want the name of the column on right click of a column header in jqGrid. Any code would be appreciated.

Original source