EXTJS 4.2-如何动态更改网格行';s动作图标工具提示?

EXTJS 4.2-如何动态更改网格行';s动作图标工具提示?,extjs,extjs4.2,Extjs,Extjs4.2,我有一个网格,可以显示一组记录。我在网格中有一个action列,其中显示了用户可以单击以对每个记录执行各种操作的各种按钮 其中一个按钮我想根据记录类型动态更改的工具提示。我有两种类型,活动和潜在客户。如果记录是一个活动,我希望按钮在光标悬停在其上时显示“关闭活动”工具提示。如果记录是潜在客户,我希望按钮在光标悬停在其上时显示“接受潜在客户”工具提示 现在我有一个getClass方法,它已经在检查其他东西以动态更改按钮图像,例如,如果它是一个已经关闭的lead/activity,它将显示一个红色的

我有一个网格,可以显示一组记录。我在网格中有一个action列,其中显示了用户可以单击以对每个记录执行各种操作的各种按钮

其中一个按钮我想根据记录类型动态更改的工具提示。我有两种类型,活动和潜在客户。如果记录是一个活动,我希望按钮在光标悬停在其上时显示“关闭活动”工具提示。如果记录是潜在客户,我希望按钮在光标悬停在其上时显示“接受潜在客户”工具提示

现在我有一个getClass方法,它已经在检查其他东西以动态更改按钮图像,例如,如果它是一个已经关闭的lead/activity,它将显示一个红色的复选标记,如果它没有关闭,它将显示一个绿色的复选标记。我只是想要一个方法来改变工具提示以及。下面是我当前的getClass方法代码

getClass: function(v, meta, rec) {
    if( 'Y' === rec.get('closed_f') ) {
        return 'x-icon-complete-red';
    } else {
        return 'x-icon-complete-green';
    }
}

如何更改工具提示呢?我已经尝试过这个.tooltip='[text]',这个.setTooltip('[text]')。我注意到,在上面的代码上下文中,“this”实际上是网格对象,而不是按钮对象,因此它显然不起作用。

要根据记录数据切换工具提示,可以使用
getTip
函数(如
getClass
)。。。(通常)。由于ext4.2中的
getTip
并不适用于所有人,因此如果
getTip
不起作用,可以在getClass函数中添加如下动态工具提示:

getClass: function(v, meta, rec) {
    if( 'Y' === rec.get('closed_f') ) {
        this.items[0].tooltip = 'Your custom tooltip';
        return 'x-icon-complete-red';
    } else {
        return 'x-icon-complete-green';
    }
}
请记住,
this.items[0]
中的索引是Action列中按钮的索引。如果您的按钮是第二个,则必须设置
1
,而不是
0
,依此类推


解决方案:

谢谢Tyr,我想尝试一下,但是我代码中的“this”指的是网格,而不是实际的按钮对象:(
this
指的是
actioncolumn
items
包含按钮。您是否知道'this'是网格对象,我如何定位action列以便访问其项目?您确定
this
是网格对象吗?请尝试
console.info(this.getXType())
。这是一个函数演示。是的,当它到达getClass函数中的该点时,“this”是网格对象。