EXTJS GridPanel和列数据默认值

b3v*_*abs 2 extjs extjs3

我有gridpanel一个有以下字段:

Name ID Address Home_Phone Cell
Run Code Online (Sandbox Code Playgroud)

某些返回商店的记录可能没有任何这些字段的数据,而是在网格中显示该记录的空列我想显示默认值N/A.

所以我会的

Name     ID   Address      Home_Phone    Cell
Shaun    2    My Address     N/A          N/A
Run Code Online (Sandbox Code Playgroud)

而不是:

Name     ID   Address      Home_Phone    Cell
Shaun    2    My Address   
Run Code Online (Sandbox Code Playgroud)

我知道有两种方法可以做到这一点:

  1. 在后端,如果该字段不存在,则在JSON中为该列返回"N/A".
  2. 使用检查记录是否不包含返回值"N/A"的方法创建模板.

我的问题是,grid如果没有在记录显示中找到值,则有一种更简单的方法告诉列N/A吗?

nsc*_*rob 5

您可以为列添加渲染器.您可以为每列添加渲染器,也可以在有更多具有此行为的列时定义自己的列.

//为每个列配置添加此项(适用于空值和空字符串)

{
    renderer: function(value){
        if (Ext.isEmpty(value)) {
            return 'N\\A';
        }
        return value;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者将渲染器添加到扩展列的组件中,并在整个应用程序中使用它.在前端更容易做到这一点,而不是修改后端并发送额外的不必要的数据,如'N\A'.

希望能帮助到你.