ExtJS:Excel样式的列函数

时间:2013-09-12 23:01:11

标签: extjs extjs4

作为一个简单的例子,假设我想制作一个数学产品网格:

A | B | C
----------
7 | 2 | 14
1 | 5 | 5
2 | 4 | 8
6 | 0 | 0
3 | 3 | 9
   ...

假设我的数据库仅存储 A B 的值。然后我有3个选择:

  1. 计算 C 服务器端,并将ExtJS模型与 A B C 一起用作字段< / LI>
  2. 在初始化加载记录时计算 C 客户端(通过某些读卡器?)如何做到
  3. 计算 C 客户端,在网格渲染后,逐行,提取 A B 并设置 C
  4. 的值
  5. 只需在数据库中存储 A B C
  6. 思考? 我不知道为什么,但我认为如果我能找到一种方法,那么(2)是最干净的。

1 个答案:

答案 0 :(得分:1)

2和3都得到了很好的支持。

对于3,你可以在列上使用renderer配置 - 那里有很多很多例子。

对于2,您可以通过转换函数

将此模型作为计算字段映射到模型中

来自docs的示例:

function fullName(v, record){
    return record.data.last + ', ' + record.data.first;
}

function location(v, record){
    return !record.data.city ? '' : (record.data.city + ', ' + record.data.state);
}

Ext.define('Dude', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'fullname',  convert: fullName},
        {name: 'firstname', mapping: 'name.first'},
        {name: 'lastname',  mapping: 'name.last'},
        {name: 'city', defaultValue: 'homeless'},
        'state',
        {name: 'location',  convert: location}
    ]
});