2

如 ext.net 示例中所示,是格式化列条目的代码

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 很陌生,我确信我忽略了一些东西

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

4

2 回答 2

4

你应该总是看看 ExtJS API。在这里你会寻找Ext.grid.column.Column-cfg-renderer

渲染器参数是

  • value : Object 当前单元格的数据值
  • metaData : Object 关于当前单元格的元数据集合;可以由渲染器使用或修改。可识别的属性有:tdCls、tdAttr 和 style。
  • record : Ext.data.Model 当前行的记录
  • rowIndex : Number 当前行的索引
  • colIndex : Number 当前列的索引
  • store : Ext.data.Store 数据存储
  • view : Ext.view.View 当前视图

所以我想这应该对你有用

var company = function(value, meta, record) {
   return String.format(template, (record.data.change > 0) ? "green" : "red", value);
}; 
于 2013-02-08T09:44:42.403 回答
2

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

于 2013-02-08T09:45:02.330 回答