我想在单击/选择行时将样式应用于网格面板中某行的特定列。 我可以使用rowClick事件来捕获上面的事件&应用特定于该行的任何样式。但是当我点击网格中的另一行时,我还想在任何行上恢复应用的样式。
我想到的一个想法就是维持上一行点击的状态。是否有更简单的方法来实现上述目标。
答案 0 :(得分:0)
你必须以某种形式维持国家:
...您可以初始化变量(selectedRow
)以保存当前选定的行,然后调用rowClick上的函数以恢复当前selectedRow
的状态,将selectedRow
变量更新为新的行,并将样式应用于新selectedRow
。
答案 1 :(得分:0)
您可以使用rowdeselect
事件删除已应用的样式。如果您在选择行时应用样式,则很可能在取消选择它时将其删除。
如果设置了SelectionModel
的{{1}}属性,则选择第二行时,第一行将触发singleSelect
事件。
另一种解决方案:
rowdeselect
答案 2 :(得分:0)
使用Grid的itemClick事件,并使用event参数直接进入单元格
fnYourItemClick: function (this, record, item, index, e, eOpts) {
//Here you go the fancy code to update your cell
var theCell = Ext.get(e.target);
theCell.removeCls('<Your Old CSS Class Name>');
theCell.addCls('<Your New CSS Class Name>');
//Here you go the fancy code to update entire selected row of the grid
var theRow = Ext.get(e.target).parent('tr');
if(theRow.hasCls('<Your Old CSS Class Name>')){
theRow.removeCls('<Your Old CSS Class Name>');
theRow.addCls('<Your New CSS Class Name>');
}
}