widgetcolumn:将widget的可见性绑定到dataIndex

时间:2017-09-13 10:30:10

标签: extjs extjs6-classic

我有一个包含按钮的widget列:

xtype:'widgetcolumn',
dataIndex: 'canUpdateKey',
itemId:'updateKey',
width:120,
widget: {
    xtype: 'button',
    text: 'Update key',
    hidden: '{!record.canUpdateKey}'
}

我只想在记录中显示canUpdateKey为真的按钮;但这不会缩进。 Relevant fiddle

2 个答案:

答案 0 :(得分:1)

来自widget配置文档:

  

渲染的组件注入了一个继承的Ext.app.ViewModel   来自网格正在使用的任何ViewModel,并包含两个额外的   属性:记录 recordIndex

     

窗口小部件配置可能包含使用的cfg-bind配置   ViewModel的数据。

所以你应该使用bind,就像这样:

xtype:'widgetcolumn',
dataIndex: 'canUpdateKey',
itemId:'updateKey',
width:120,
widget: {
    xtype: 'button',
    text: 'Update key',
    bind: {
        hidden: '{!record.canUpdateKey}'
    }
}

小提琴:https://fiddle.sencha.com/#view/editor&fiddle/26ig

答案 1 :(得分:0)

在按钮小部件中,试试这个:

listeners:{
                render:function(btn){
                    if(!btn.getWidgetRecord().data.canUpdateKey)
                    btn.hide();
                }
                }