Jump to content

Recommended Posts

Posted

Добрый день. Я пытался создать полсказки на разные столбцы UniStringGrid через JS скрипт в разделе ClientsEvents, но получается лишь получить пустую подсказку при наведении курсора на ячейку. Может кто подскажет как это сделать. Заранее признателен.

Posted

Здравствуйте!

Поищите на форуме решения для UniDBGrid по всплывающим подсказкам — их можно применить и к UniStringGrid.

Posted

У меня есть работающее решение для 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 это не работает

Posted
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);
            }
        }
    });
}

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...