我有一个网格,其中一列表示进度条。我需要在进度条上设置一个工具提示“Progress 4 of 10”。最初是这样的:
columns: [
{
translatable: {
text: 'progress'
},
tdCls: 'highlight',
xtype: 'widgetcolumn',
dataIndex: 'progress',
widget: {
cls: 'percentage-bar',
text: ' ',
align: 'center',
xtype: 'progressbar',
defaultListenerScope: true,
listeners: {
afterrender: function (bar) {
var tip = Ext.create('Ext.tip.ToolTip', {
target: bar,
html: Dict.translateAndReplace(
'step',
[
bar.getWidgetRecord().get('current_step') === 0 ? 1 : bar.getWidgetRecord().get('current_step'),
bar.getWidgetRecord().get('total_steps')
],
'%d'
)
});
if (bar.getValue() === 1) {
bar.addCls('progress-complete')
}
},
},
},
width: 100
},
问题是--它只适用于一个页面。当有多个页面或者我应用过滤或排序时,不会触发事件“After Render”。因此,只有当网格加载时才会触发,而不是内容。我需要更改为目标元素或使用渲染器。我试着用渲染器玩Arroung,但也卡住了。如何获得当前的电池容器?
columns: [
{
translatable: {
text: 'progress'
},
tdCls: 'highlight',
xtype: 'widgetcolumn',
dataIndex: 'progress',
width: 100,
widget: {
cls: 'percentage-bar',
text: ' ',
align: 'center',
xtype: 'progressbar',
defaultListenerScope: true,
},
renderer: function (value, metaData, record) {
let HowToGetTheContainer = "?????";
var tip = Ext.create('Ext.tip.ToolTip', {
target: HowToGetTheContainer,
html: Dict.translateAndReplace(
'step',
[
record.get('current_step') === 0 ? 1 : record.get('current_step'),
record.get('total_steps')
],
'%d'
)
});
if (value === 1) {
Ext.down().addCls('progress-complete')
}
}
},
如何获取变量“HowToGetTheContainer”?
1条答案
按热度按时间tyu7yeag1#
在
renderer
函数中,您可以使用以下代码添加工具提示(这也适用于其他列类型,而不仅仅是widgetcolumn
):这不是您问题的一部分,但要在
widgetcolumn
中自定义小部件,例如添加progress-complete
样式,而不是使用Ext.down()
,您可以使用Column的onWidgetAttach
函数: