Чтобы они отображались по-разному, я обычно прикрепляю функцию к метке beforeshow
, которая обновляет подсказку перед ее отображением:
// add tooltips to grid
myGrid.getView().on('render', function(view) {
view.tip = Ext.create('Ext.tip.ToolTip', {
target: view.el,
delegate: view.itemSelector,
trackMouse: true,
minWidth: 0,
maxWidth: 800,
dismissDelay: 0,
showDelay: 800,
renderTo: Ext.getBody(),
listeners:{
beforeshow: function updateTipBody(tip){
text = view.getRecord(tip.triggerElement).get('tooltip')
tip.setWidth(text.length * 5);
tip.update(text);
}
}
});
});
В вышеприведенном примере мои подсказки были определены для каждой записи в самом хранилище данных, поэтому я называю text = view.getRecord(tip.triggerElement).get('tooltip')
('подсказка' - это столбец в моем хранилище данных с текстом подсказки). Но вы можете реализовать любую логику, которую захотите, в функции прослушивателя beforeshow, если в конце вызываете tip.update(yourLogic)
.