jsp で dojox.grid.DataGrid を使用しています。
<script type="dojo/method" event="onStyleRow" args="inRow">
var grid = dijit.byId("someID");
var item = grid.getItem(inRow.index);
if(item != undefined) {
if(item.someAttribute == "1") {
inRow.customClasses = "dojoxGridMYRow";
} else {
inRow.customClasses = "dojoxGridRow";
}
}
if(aBoolean) {
inRow.customStyles = "backgrund-color: #FFCC00";
}
//dojox.grid.DataGrid.prototype.onStyleRow.apply(this, arguments);
//grid.focus.styleRow(inRow);
//grid.edit.styleRow(inRow);
</script>
最初のコメント行は、行をクリックしたときに通常の動作を取得することです。しかし、 grid.update() が呼び出されるまで何も変更されません。これは良くないため、多くの行が再ロードされます。ちらつきのようなものです。奇妙なことに、マウスが変更された行の上に移動すると、背景色が変更されます(更新が呼び出されなかった場合)。したがって、更新なしで可能でなければなりません。updateRow または renderRow またはこのような方法で呼び出すと、無限ループが発生します。
誰でも私を助けることができますか?:/
編集: onStyleRow の動作もコピーしようとしましたが (選択した行が直接赤くマークされているため)、customClasses を設定して this.focus.styleRow(inRow) と this.edit.styleRow(inRow) を呼び出す以外に何もしません。これらの行を関数に追加しても効果はありません。