【问题标题】:EXTJS GridPanel and Column Data defaultsEXTJS GridPanel 和 Column Data 默认值
【发布时间】:2012-03-27 15:42:24
【问题描述】:

我有一个gridpanel,其中包含以下字段:

Name ID Address Home_Phone Cell

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

所以我会的

Name     ID   Address      Home_Phone    Cell
Shaun    2    My Address     N/A          N/A

然后:

Name     ID   Address      Home_Phone    Cell
Shaun    2    My Address   

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

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

我的问题是,如果在记录中找不到值,是否有更简单的方法告诉grid 列显示默认的N/A

【问题讨论】:

    标签: extjs extjs3


    【解决方案1】:

    您可以为列添加渲染器。您可以为每列添加一个渲染器,或者如果您有更多具有此行为的列,则可以定义自己的列。

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

    {
        renderer: function(value){
            if (Ext.isEmpty(value)) {
                return 'N\\A';
            }
            return value;
        }
    }
    

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

    希望对你有帮助。

    【讨论】:

    • 你在你的情况下错过了右括号')':if (Ext.isEmpty(value) {。你也应该以这种方式转义斜线:'N\\A'
    • 编辑这个 4 年前的答案而不是这个评论不是更有用吗?
    • 您的答案已被接受为最佳答案 - 因此请将其转换为适当的形式。 (如果我犯了这样的错误,我完全预料到这样的答案会被“其他人”训斥——我也遇到过这样的情况)。不喜欢投反对票?!我也是。
    • 确实鼓励您在 stackoverflow 上编辑答案并改进它们,而不仅仅是抱怨一些代码错误。顺便说一句,这可能是最好的答案,因为人们需要的是想法而不是确切的代码!我不在乎投反对票(即使这意味着答案没有用),如果收到您的答案已被编辑的通知,我会更加感激。会很感激的。
    • 我已经编辑了你的帖子(但没有任何赞成)。(有人真的很关心你的反对,以回应你的反对我也被反对了。我以为是你)
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多