我们在 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) 之外什么也没有。将这些行添加到我的函数中也不起作用。