Patrick1968 Posted August 30 Posted August 30 Добрый день. Я пытался создать полсказки на разные столбцы UniStringGrid через JS скрипт в разделе ClientsEvents, но получается лишь получить пустую подсказку при наведении курсора на ячейку. Может кто подскажет как это сделать. Заранее признателен. Quote
Sherzod Posted August 30 Posted August 30 Здравствуйте! Поищите на форуме решения для UniDBGrid по всплывающим подсказкам — их можно применить и к UniStringGrid. Quote
Patrick1968 Posted August 30 Author Posted August 30 У меня есть работающее решение для UbiDbGRid, я его пробовал function viewready(sender, eOpts) { var tm = new Ext.util.TextMetrics(); sender.view.tip = Ext.create('Ext.tip.ToolTip', { target: sender.view.el, delegate: sender.view.cellSelector, trackMouse: true, renderTo: Ext.getBody(), listeners: { beforeshow: function updateTipBody(tip) { gridColums = sender.view.getGridColumns(); column = gridColums[tip.triggerElement.cellIndex]; record = sender.view.getRecord(tip.triggerElement.parentNode); if ((column.dataIndex == 4) || (column.dataIndex == 5)) {tip.update("Просмотр");} else if (column.dataIndex == 6) {tip.update("Загрузка");} else if (column.dataIndex == 7) {tip.update("Удаление");} else if (column.dataIndex == 😎 {tip.update("Создание копии типа документа");} else {return false;} // if (column.dataIndex !== '-1' && (column.getWidth() < (tm.getSize(record.data[parseInt(column.dataIndex)]).width) + 5)) { // tip.update(record.data[parseInt(column.dataIndex)]); // } else { // return false; // } } } }); } но для UniStringGrids это не работает Quote
Sherzod Posted August 30 Posted August 30 10 hours ago, Patrick1968 said: Может кто подскажет как это сделать. Попробуйте: function viewready(sender, eOpts) { var view = sender.getView(); view.tip = Ext.create('Ext.tip.ToolTip', { target: view.el, delegate: '.x-grid-cell', // любая ячейка грида trackMouse: true, renderTo: Ext.getBody(), listeners: { beforeshow: function(tip) { var cell = tip.triggerElement; if (!cell) { return false; } // берём текст прямо из DOM-ячейки (а не из записи store), // поэтому работает и на UniStringGrid, и на UniDBGrid var inner = cell.querySelector('.x-grid-cell-inner') || cell; // режим "только когда текст не помещается" — раскомментируйте строку ниже: // if (inner.scrollWidth <= inner.clientWidth) { return false; } // влезает — не показывать var text = (inner.innerText || inner.textContent || '').trim(); if (!text) { return false; } // пустую подсказку не показываем tip.update(text); } } }); } Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.