如何在将字段渲染到 Extjs 中的网格之前修改字段

Posted

技术标签:

【中文标题】如何在将字段渲染到 Extjs 中的网格之前修改字段【英文标题】:How to modify fields before rendering it to the grid in Extjs 【发布时间】:2016-03-28 12:48:07 【问题描述】:

在将数据渲染到 ExtJs 中的网格之前,我必须为从存储中获取的数据附加一个值。

请指导我实现上述功能。

目前网格的填充方式如下:

Ext.define("MyApp.view.ShowDetails",
    extend: 'Ext.grid.Panel',
    requires:['MyApp.store.MyStore'],
    store:'MyStore', 
    stateId: 'stateGrid',
    selType : 'checkboxmodel', 
    selModel : 
    mode : 'MULTI'
    , 
    plugins : [Ext.create('Ext.grid.plugin.RowEditing', 
    clicksToEdit : 2
     )],

    defaultType: 'textfield',
     columns: [
              
                  header: 'Userid',
                  width: 150,
                  dataIndex: 'uid',
          editor : 
                
                    allowBlank : true
                

              , 
             ...

【问题讨论】:

你能解释一下吗?一个例子会很有用 @ankitchaudhary 例如。如果从商店获取的 ID 是“A123”,我想在网格中显示之前附加一个后缀为“A123D” 【参考方案1】:

是的,这是可能的,在 MODEL

的字段声明中使用 convert 属性

一个例子:

 
            name: 'uid',
            type: 'string',
            convert: function (value, record) 
                if (!value)
                    return value+'D';
                else
                    return value;

            
        ,

【讨论】:

谢谢很多 ankit 4 你的帮助 :) 如果它解决了你的问题..请你接受答案。它也会帮助其他人。 但是还有一个问题,上面的解决方案会在网格中渲染修改后的值,但是当值从网格更新到存储时,它仍然会在文本中附加'D'。

以上是关于如何在将字段渲染到 Extjs 中的网格之前修改字段的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript Extjs:根据其他字段的条件,使用自定义类渲染网格中的单元格

在 ExtJS4 网格面板中获取对分页文本字段的引用

extjs 可编辑网格 - 清除修改记录列表

ExtJS 4.2网格单元格编辑如何将列值与组合显示值绑定

加载商店后如何在网格中设置值? EXTJS3

基于 extjs 网格中的另一个组合框填充字段