我想要在 jqGrid 中右键单击列标题时的列名称。任何代码将不胜感激。
问问题
2491 次
2 回答
3
您可以将contextmenu
事件绑定到所有列标题。每个标题都是<th>
元素,因此它的 DOM 支持cellIndex属性。cellIndex属性为您提供列标题的索引。如果您将使用相同的索引,colModel
您将获得该列的定义。该name
属性为您提供列名。
相应的代码可能如下:
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
}
});
演示使用代码。只需使用鼠标右键单击列标题,您将看到结果:
于 2012-07-02T17:32:01.700 回答
2
所有 jqGrid 单元格都有一个aria-described-by
由gridId_columnname
. 您可以使用它来获取您的列名。
对于网格单元..
var cellName = $(e.target).closest('td').attr('aria-described-by');
var gridId = 'list1';
var columnName = cellName.substr(gridId.length - 1);
对于列标题,除了奥列格的回答,你可以这样做..
var header = $(e.target).closest('th')
var gridId = 'list1';
var columnName = header.attr('id').substr(gridId.length - 1);
于 2012-07-02T17:53:45.183 回答