【发布时间】:2012-06-28 09:07:09
【问题描述】:
我想知道是否可以创建一个右键单击上下文菜单,该菜单在 jqGrid 的标题行上被激活,并且能够将列添加到右侧或左侧或有问题的列或隐藏当前列(不使用 ui-多选)。
任何这方面的代码都将不胜感激。
【问题讨论】:
标签: jqgrid
我想知道是否可以创建一个右键单击上下文菜单,该菜单在 jqGrid 的标题行上被激活,并且能够将列添加到右侧或左侧或有问题的列或隐藏当前列(不使用 ui-多选)。
任何这方面的代码都将不胜感激。
【问题讨论】:
标签: jqgrid
我建议你使用 contextmenu 插件,你可以在 jqGrid 的 plugins/jquery.contextmenu.js 中找到它。例如,在the answer 和this one 中描述了如何在 jqGrid 主体内部使用它。使用以下代码,您也可以在列标题中使用它:
var cm = $grid.jqGrid("getGridParam", "colModel");
$("th.ui-th-column").contextMenu('myMenu1', {
bindings: {
columns: function(trigger) {
var $th = $(trigger).closest("th");
if ($th.length > 0) {
alert("the header of the column '" + cm[$th[0].cellIndex].name +
"' was clicked");
}
}
},
// next settings
menuStyle: {
backgroundColor: '#fcfdfd',
border: '1px solid #a6c9e2',
maxWidth: '600px', // to be sure
width: '100%' // to have good width of the menu
},
itemHoverStyle: {
border: '1px solid #79b7e7',
color: '#1d5987',
backgroundColor: '#d0e5f5'
}
});
其中菜单myMenu1 定义为
<div class="contextMenu" id="myMenu1" style="display:none">
<ul style="width: 200px">
<li id="columns">
<span class="ui-icon ui-icon-calculator" style="float:left"></span>
<span style="font-size:11px; font-family:Verdana">Choose columns</span>
</li>
</ul>
</div>
The demo 演示如何使用它:
【讨论】:
remapColumns 的工作示例,你可以找到它here 例如。