在基于行鼠标悬停的条件下显示行工具提示

时间:2013-07-11 09:01:13

标签: javascript extjs extjs4 extjs3 extjs-grid

我在网格渲染事件中使用此代码,用于在行鼠标悬停

上显示tpl
grid.tip = new Ext.ToolTip({
    view: grid.getView(),
    target: grid.getView().mainBody,
    delegate: '.x-grid3-row',
    trackMouse: true,
    renderTo: Ext.getBody(),
    showDelay: 1000,
    listeners: {
        beforeshow: function updateTipBody(tip) {
            var i = grid.getView().findRowIndex(tip.triggerElement);
            var ViewObj = grid.getStore().getAt(i);
            var nameVar, addressVar, salesOrgVar;
            if (ViewObj.get('ERROR_MESSAGE') != null && (ViewObj.get('ERROR_MESSAGE')).length > 1) {

                console.log("done..");
                nameVar = (ViewObj.get('ERROR_MESSAGE') != null && ViewObj.get('ERROR_MESSAGE') != "") ? (Ext.BUNDLE.getMsg('POSFilesWidget.ErrorFolderGrid.ErrorFolder.label') + " : " + ViewObj.get('ERROR_MESSAGE')) : "";
                tip.update(nameVar);
            } else {
                tip.setSize(0, 0);
                tip.setVisible(false);
                console.log("1..");
            }
        }
    }
});

但是当消息未来时它会显示空白tpl,但我不想显示工具提示请看图像

enter image description here

1 个答案:

答案 0 :(得分:2)

这是ExtJS bug。你必须致电

Tooltip.render(Ext.getBody());

在您的应用程序开始时。然后在你的听众中

return false;

当您不想显示工具提示时。