EXTJS单击更改网格单元格背景颜色

时间:2012-02-01 16:59:11

标签: javascript extjs4

我的代码部分

xtype: 'grid',

width: 500,
store: store6,

columns:[{

text:'Market',

sortable: false,

width:145,
dataIndex: 'market
}]

我尝试过使用听众(我认为我没做错),我不知道点击是否会在这里工作,因为每个单元格都没有id标签。

使用案例 1.用户点击单元格 2.代码将单元格变为绿色 3.用户单击相同的单元格 4.代码将单元格变为白色 每个单元格的颜色完全取决于用户。

这是我尚未启动任何服务器端(PHP)开发的所有客户端开发。我在Stack上搜索了一下,但我找不到一个有效的解决方案。任何帮助或评论都会有所帮助。

4 个答案:

答案 0 :(得分:2)

这正是我正在寻找的。感谢InnerJL指导我正确的方向。我需要它才能点击。在白色和绿色之间交替。解决方案发布在

下面
function(value, metaData, record, rowIndex, colIndex, store)
{
var test =  Ext.get(metaData.id).getStyle("background-color");
if(test == "green")
{
Ext.get(metaData.id).setStyle("background-color", "white");
}
else
{
Ext.get(metaData.id).setStyle("background-color", "green");
}
return value;
}

答案 1 :(得分:1)

我做了类似的事情,我们使用了自定义column renderer

这里是代码:

statusRenderer: function (value, metaData, record, rowIndex, colIndex, store) {
        if (rowIndex == undefined) {
            return;
        }
        metaData.css = getCss(value);
        return formatValue(value);
    }

请注意,您可以修改元数据中的css属性 - 您可以设置单元格的颜色。例如,在每次单击时,您都会增加记录的内部计数器。然后根据此计数器的渲染器在单元格上添加不同的css类。

希望这有帮助!

答案 2 :(得分:0)

我已经尝试了statusRenederer但没有任何反应,但我从下面的代码中得到了一些回复。

fn:function(value, metaData, record, rowIndex, colIndex, store)
{
alert(metaData.id);
metaData.trattr = 'style="background-color: red;"';
alert(metaData.css);
return value;
}

问题是我实际上可以获得身份证明。 getCSS也有一些问题。除非有一个我无法在sencha.com上查找的ExtJS类。我可以很好地获取ID但无法更改CSS。

答案 3 :(得分:0)

SUCCESS !!!!

fn:function(value, metaData, record, rowIndex, colIndex, store)
{
document.getElementById(metaData.id).style.background = "green";
return value;
}

我参加了DOM编程,而不是通过ExtJS查看,这是我真正喜欢的,但这可以完成工作。我所要做的就是在绿色和白色之间切换。