Extjs, как изменить всплывающую подсказку на изменение размера сетки? - PullRequest
1 голос
/ 09 июля 2019

Показать подсказку для переполненной ячейки сетки.

Если содержимое ячейки не помещается в видимой части, я хочу показать всплывающую подсказку с полным текстом этой ячейки, а если ее нет, не показывать ее. Есть идеи, как мне это сделать?

// think about smth like this
// but don't know how to get content width

text: 'someHeaderName',
listeners: {
    resize( th, newWidth, height, oldWidth, oldHeight, eOpts ) {
        if (newWidth <= contentWidth) {
            this.showTooltip = true;
            th.up('panel').getView().refresh();
        }
    }
},
renderer: function(val, meta, rec, rowIndex, colIndex, store, view) {
    if (this.showTooltip) {
        meta.tdAttr = 'data-qtip="' + val + '"';
    }
    return val;
}

1 Ответ

0 голосов
/ 15 июля 2019

Измените свою функцию рендеринга следующим образом. Убедитесь, что x-grid-cell-inner является классом вашей ячейки сетки, в противном случае замените его именем класса CSS. Для обновления после каждого изменения размера столбца используйте функцию getView().refresh() и удалите другие строки из слушателей изменения размера.

 listeners: {
  resize( th, newWidth, height, oldWidth, oldHeight, eOpts ) {
                th.up('panel').getView().refresh();
           }
 },
 renderer: function(val, meta, rec, rowIndex, colIndex, store, view) {
    var colWidth = this.getColumns()[colIndex].width;
    var innercellclassEl = document.getElementsByClassName('x-grid-cell-inner ');
    var contentWidth = Ext.util.TextMetrics.measure(innercellclassEl,val).width;
    if ( colWidth < contentWidth) {
      meta.tdAttr = 'data-qtip="' + val + '"';
    }
    return val;
 }
...