Есть ли способ иметь ячейку textarea с полосами прокрутки? - PullRequest
0 голосов
/ 26 января 2019

Я пробую Табулятор впервые.Одним из моих полей является многострочный текст.Я не хочу, чтобы ряд был очень высоким.Я хотел бы, чтобы ячейка имела ограниченную высоту, но с вертикальной полосой прокрутки для этой ячейки.Можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Форматер textarea такой же, как и любой другой, вы можете создать свой собственный или обновить его любым удобным вам способом, в этом случае вам понадобится специальный форматер, который добавляет максимальную высоту к ячейке и автоматическое переполнение, затем вы можете назначить ее определению столбца для рассматриваемого столбца:

//multiline text area
var customTextareaFormatter = function(cell, formatterParams, onRendered){
    var el = cell.getElement();
    el.style.whiteSpace = "pre-wrap";
    el.style.overflow = "auto";
    el.style.maxHeight = "50px";
    return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
};

//assign to column definition
{title:"Description", field:"desc", formatter:customTextareaFormatter},
0 голосов
/ 26 января 2019

Если ваша ячейка имеет атрибут class или id, это должно быть возможно.

Тогда вы можете изменить стиль CSS. Вам нужна фиксированная высота и свойство overflow-y.

document.getElementsByClassName('tabulator-row')[0].style.height = "100px";
document.getElementsByClassName('tabulator-row')[0].style.overflowY = "scroll";

Если у вас нет уникального идентификатора или класса для целевого элемента, вы можете использовать querySelector для выбора определенного элемента.

В этом примере будет выбрана ячейка с атрибутом tabulator-field и значением name

document.querySelector('[tabulator-field=name]').style.height = "100px";
document.querySelector('[tabulator-field=name]').style.overflowY= "scroll";

Может быть, вы можете использовать CSS напрямую. Это было бы лучшим решением.

...