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);
列ヘッダーの場合、Olegの回答に加えて、これを行うことができます。
var header = $(e.target).closest('th')
var gridId = 'list1';
var columnName = header.attr('id').substr(gridId.length - 1);
于 2012-07-02T17:53:45.183 に答える