我看过documentation,但我一直无法找到答案。有没有办法防止选中时突出显示行?那甚至是一种阻止行被选中的方法。我喜欢“hoverrows:true”选项,但理想情况下我想停止选择点击一行。
谢谢,
更新 我已经能够“hackily”实现一些似乎是临时修复的东西。我真的不喜欢它,并且如果有一个更好的解决方案,那么它会更好...
我发现如果我通过了选项
onSelectRow: function(rowid, status) {
$('#'+rowid).removeClass('ui-state-highlight');
}
当我实例化jqGrid时,我可以在添加时删除突出显示。
还有另一种更理想的方法吗?
答案 0 :(得分:51)
使用以下代码:
beforeSelectRow: function(rowid, e) {
return false;
}
答案 1 :(得分:6)
如果你和我一样拥有大量的jqGrids并且不想为每一个覆盖onSelectRow,这里是Reigel解决方案的全球版本,对我很有用:
jQuery.extend(jQuery.jgrid.defaults, {
onSelectRow: function(rowid, e) {
$('#'+rowid).parents('table').resetSelection();
}
});
答案 2 :(得分:1)
我想你可以直接在CSS中解决这个问题。只需覆盖特定表的ui-state-highlight的值
#table_id tr.ui-state-highlight {
border: inherit !important;
background: inherit !important;
color: inherit !important;
}
#table_id tr.ui-state-highlight a {
color: inherit !important;
}
#table_id tr.ui-state-highlight .ui-icon {
background-image: inherit !important;
}
我使用值inherit
作为示例 - 您可能需要从theme.css中复制一些值才能使其正常工作。
答案 3 :(得分:1)
尝试:
onSelectRow: function(rowid, status) {
$("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}
您可以阅读文档here。希望它可以帮助你...
答案 4 :(得分:0)
是的,使用rowattr回调:
rowattr: function (rowData,currentObj,rowId) {
if (rowData.SomeField=="SomeValue") {
return {"class": "ui-state-disabled"};
}
},
这还会使该行显示为灰色并禁用选择。