ExtJS 表格自定义列-动态widget

一、需求:

表格中根据数据不同,动态渲染出不同的组件。

二、环境:

1、操作系统:

 Microsoft Windows 10 专业版

2、OS 版本:          10.0.14393 暂缺 Build 14393

3、ExtJS: ExtJS 6.2.0 gpl

4、Sencha Cmd v6.2.1.29

三、实现

1、数据列中:

在'Ext.grid.Panel'中的columns中的列中

text: "活动控制",
width: 165,
align: "center",
xtype:'widgetcolumn',
widget: {
    width: 160,
    xtype: "activitycontroloperation",//封装的要渲染的组件
    bind: '{record.status}'//绑定数据,这个一定要有,不然渲染出的组件不会排序,也不会刷新
}

2、封装的组件:

/**
 * Created by zhaojianrun on 2017/3/29.
 */
Ext.define('MyApp.view.ActivityControlOperation', {
    extend: 'Ext.container.ButtonGroup',
    xtype: 'activitycontroloperation',
    requires: [
        'MyApp.view.StatusActivityControlConfig'
    ],
    constructor: function (config) {
        this.callParent([config]);
    },
    activityControlConfig: Ext.create({
        xtype: 'statusactivitycontrolconfig'
    }),
    defaultBindProperty: 'value',//**默认绑定为传入的值
    /*在这个方法里,每次表格刷新时,对组件进行重新渲染*/
    setValue: function (value) {
        var controlOperation = this.activityControlConfig[value];
        this.removeAll();
        this.add(
            controlOperation
        );
        this.updateLayout();
    }
});

四、最终效果:



五、注解

每次排序或刷新表格,或翻页,这一列都会根据状态值的不同,渲染出不同的组件。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值