是否可以阻止jqGrid行被选中和/或突出显示?

我查看了文档,但我一直无法找到答案。 有没有办法阻止选择时突出显示行? 那甚至是一种停止选择行的方法。 我喜欢“hoverrows:true”选项,但理想情况下我想停止选择点击一行。

谢谢,

更新:我已经能够“hackily”实现一些似乎是临时修复的东西。 我真的不喜欢它,如果有一个,那么理想上会有更好的解决方案……

我发现如果我通过选项

onSelectRow: function(rowid, status) { $('#'+rowid).removeClass('ui-state-highlight'); } 

当我实例化jqGrid时,我可以在添加时删除突出显示。

还有另一种更理想的方法吗?

使用以下代码:

 beforeSelectRow: function(rowid, e) { return false; } 

如果你和我一样拥有大量的jqGrids并且不想为每一个覆盖onSelectRow,这里是Reigel解决方案的全球版本,对我很有用:

 jQuery.extend(jQuery.jgrid.defaults, { onSelectRow: function(rowid, e) { $('#'+rowid).parents('table').resetSelection(); } }); 

我想你可以直接在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复制一些值才能使其工作。

尝试:

 onSelectRow: function(rowid, status) { $("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode. } 

你可以在这里阅读文件。 希望它能帮到你……

是的,使用rowattr回调:

 rowattr: function (rowData,currentObj,rowId) { if (rowData.SomeField=="SomeValue") { return {"class": "ui-state-disabled"}; } }, 

这也会使行变灰并禁用选择。