EXTJS GridPanel 和 Column Data 默认值

Posted

技术标签:

【中文标题】EXTJS GridPanel 和 Column Data 默认值【英文标题】:EXTJS GridPanel and Column Data defaults 【发布时间】: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   

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

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

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

【问题讨论】:

【参考方案1】:

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

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


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

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

希望对你有帮助。

【讨论】:

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

以上是关于EXTJS GridPanel 和 Column Data 默认值的主要内容,如果未能解决你的问题,请参考以下文章

在 Extjs 中删除 GridPanel 的 headertoolbar

extjs gridpanel:当 GridPanel 窗口再次显示时,ColumnModel 变为空

ExtJs 3.3 GridPanel 不再使用缓冲 Http 提供程序恢复列设置

无废话ExtJs 入门教程十七[列表:GridPanel]

在 ExtJS 中从 GridPanel 获取模型

ExtJs - 通过 Gridpanel 的索引获取行