web-dev-qa-db-ja.com

jqGrid行が選択および/または強調表示されないようにすることは可能ですか?

documentation を見ましたが、答えが見つかりませんでした。選択時に行が強調表示されないようにする方法はありますか?それ、あるいは行が選択されないようにする方法ですら。 「hoverrows:true」オプションが好きですが、理想的には、クリック時に行が選択されないようにしたいです。

ありがとう、

更新:暫定的な修正のように見える何かを「ハッキーに」実装することができました。私はそれがまったく好きではなく、もしあれば、より良い解決策が理想的です...

オプションに合格すると、

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

jqGridをインスタンス化すると、追加されたときにハイライトを削除できます。

これを行う別の、より理想的な方法はありますか?

22
Mike

次のコードを使用します。

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

私のように、膨大な数のjqGridがあり、すべてのjqGridをonSelectRowでオーバーライドしたくない場合は、次のReigelのソリューションのグローバルバージョンがうまく機能しました。

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

試してください:

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

ドキュメントを読むことができます ここ 。それがあなたを助けることを願っています...

2
Reigel

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からいくつかの値をコピーする必要があります。

1
Peter Bailey

はい、rowattrコールバックを使用します。

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

これにより、行がグレー表示され、選択が無効になります。

0
Justin Levene