是否可以阻止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"}; } },
这也会使行变灰并禁用选择。