documentation を見ましたが、答えが見つかりませんでした。選択時に行が強調表示されないようにする方法はありますか?それ、あるいは行が選択されないようにする方法ですら。 「hoverrows:true」オプションが好きですが、理想的には、クリック時に行が選択されないようにしたいです。
ありがとう、
更新:暫定的な修正のように見える何かを「ハッキーに」実装することができました。私はそれがまったく好きではなく、もしあれば、より良い解決策が理想的です...
オプションに合格すると、
onSelectRow: function(rowid, status) {
$('#'+rowid).removeClass('ui-state-highlight');
}
jqGridをインスタンス化すると、追加されたときにハイライトを削除できます。
これを行う別の、より理想的な方法はありますか?
次のコードを使用します。
beforeSelectRow: function(rowid, e) {
return false;
}
私のように、膨大な数のjqGridがあり、すべてのjqGridをonSelectRowでオーバーライドしたくない場合は、次のReigelのソリューションのグローバルバージョンがうまく機能しました。
jQuery.extend(jQuery.jgrid.defaults, {
onSelectRow: function(rowid, e) {
$('#'+rowid).parents('table').resetSelection();
}
});
試してください:
onSelectRow: function(rowid, status) {
$("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}
ドキュメントを読むことができます ここ 。それがあなたを助けることを願っています...
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からいくつかの値をコピーする必要があります。
はい、rowattrコールバックを使用します。
rowattr: function (rowData,currentObj,rowId) {
if (rowData.SomeField=="SomeValue") {
return {"class": "ui-state-disabled"};
}
},
これにより、行がグレー表示され、選択が無効になります。