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

时间:2018-03-07 20:57:35

标签: extjs extjs4.2

我有一个显示一堆记录的网格。我在网格中有一个操作列,显示用户可以单击以在每个单独记录上执行各种操作的各种按钮。

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

现在我有一个getClass方法已经检查其他动态来动态更改按钮图像,例如,如果它已经关闭的主要/活动,它会显示一个红色复选标记,如果它没有关闭,它将显示绿色复选标记。我只想要一种方法来改变工具提示。这是我当前的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]',this.setTooltip(' [text]')。我注意到在上面的代码中,'这个'实际上是网格对象,而不是按钮对象,所以它显然不起作用。

1 个答案:

答案 0 :(得分:1)

要根据记录数据切换工具提示,getTip函数(如getClass)是可行的方法......(通常)。由于getTip对Ext 4.2中的每个人都不起作用,因此如果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,依此类推......

http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.column.Action-cfg-getTip

解决方案:https://fiddle.sencha.com/#view/editor&fiddle/2e7k