来自不同列的条件格式

时间:2013-02-08 09:28:24

标签: gridview extjs formatting ext.net

如ext.net示例所示,this是格式化列条目

的代码
var template = '<span style="color:{0};">{1}</span>';

var change = function (value) {
   return String.format(template, (value > 0) ? "green" : "red", value);
};

现在我的问题是,我想同样格式化专栏公司。

var company = function(value) {
   return String.format(template, (record.data.change > 0) ? "green" : "red", value);
}; 

这不起作用,因为记录不会被赋予该函数,我也无法将参数传递给在渲染器上调用的Fn

var company = function(value, change) {
   return String.format(template, (change > 0) ? "green" : "red", value);
}; 

我还可以想象一下使用jquery的解决方法,但这只是一大堆工作和选择器。因为我对ext.net / extjs很新,我确信我忽略了一些东西

P.S。是的我使用旧版本的ext.net,因此链接是examples1.ext.net;)

2 个答案:

答案 0 :(得分:4)

您应该始终查看ExtJS API。在这里,您需要寻找 Ext.grid.column.Column-cfg-renderer

渲染器参数是

  • 对象 当前单元格的数据值
  • 元数据对象 关于当前单元格的元数据集合;可以由渲染器使用或修改。已识别的属性包括:tdCls,tdAttr和style。
  • 记录 Ext.data.Model 当前行的记录
  • rowIndex 数字 当前行的索引
  • colIndex 数字 当前列的索引
  • 存储 Ext.data.Store 数据存储
  • 查看 Ext.view.View 当前视图

所以我想这应该对你有用

var company = function(value, meta, record) {
   return String.format(template, (record.data.change > 0) ? "green" : "red", value);
}; 

答案 1 :(得分:2)

渲染器的第三个参数是记录。第一个是值,第二个是关于单元格的元数据:http://docs.sencha.com/ext-js/3-4/#!/api/Ext.grid.Column-cfg-renderer