ExtJS:在网格面板中设置行列的样式

时间:2011-01-05 21:04:29

标签: javascript extjs

我想在单击/选择行时将样式应用于网格面板中某行的特定列。 我可以使用rowClick事件来捕获上面的事件&应用特定于该行的任何样式。但是当我点击网格中的另一行时,我还想在任何行上恢复应用的样式。

我想到的一个想法就是维持上一行点击的状态。是否有更简单的方法来实现上述目标。

3 个答案:

答案 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>');
    }

}