Не работает adjustRowHeight

Исходный код

Здравствуйте, у меня не работает автовыравнивание по высоте, т.е строка длинная, но на таблице это никак не отображается, разве что текст не влезает в ячейку.

Здравствуйте, вот тут пример есть Code Snippet

Я знаю, по нему и делал, только почему то у меня он не работает и я не понимаю почему.
Именно с моими данными не работает, как я понимаю или может иды ему не нравятся.

У вас в объекте несколько пропертей on, имеет значение только последняя (так работают JS и JSON), кроме того в onAfterSelect у вас функция-стрелка, потому this - это не таблица.

Вот так у меня более-менее заработало и новая запись уже нужной высоты чаще всего:

on:{
    "data->onStoreUpdated":function(){
         this.data.each(function(obj, i){
           obj.index = i+1;
       });
     },
    "onAfterSelect": function(){ // !
       this.adjustRowHeight();
     }
 }

Еще может быть лучше вызывать метод этот не по селекту, а по onStoreUpdated для отдельных дата объектов. Так оно будет срабатывать и на обновления.

"data->onStoreUpdated":function(id){
     this.data.each(function(obj, i){
         obj.index = i+1;
    });
    if (id) this.adjustRowHeight();
},

Остается только вопрос к слишком длинным словам, колонка узковата, а если это урл, то там вообще будет 1 слово только. Тут поможет CSS:

<style>
   /*  плюс стоит таблице присвоить свой css класс, чтобы потом селектор уточнить, чтобы все таблицы не изменять, если это важно  */
  .webix_cell{
    overflow-wrap: break-word;
  }
</style> 

https://snippet.webix.com/qcl15342

PS: autoConfig тоже не работает, если заданы columns. xCount:7 тоже, это для листа и датавью.

Вроде как что-то возможно заработало, но таблица зависла.
В таблице 10 тысяч записей на страницу, я так понимаю нету возможности это исправить?

adjustRowHeight of ui.datatable, Methods Webix Docs у метода есть второй параметр silent, если его передать, перерисовки не будут вызываться. еще можно вызывать только для одной колонки, если есть какая-то колонка, где точно будут самые “длинные” данные. это несколько улучшит ситуацию. однако да, как там в доке и пишут, метод конкретно замедляет компонент и для больших данных это явно не очень вариант…

Есть ли какие-нибудь идеи, как для большого количества данных это реализовать без такого сильного замедления?

Можно использовать динамическую загрузку, чтобы не грузить десятки тысяч строк одним махом, и использовать свой алгоритм для расчёта и выставления $height только новой порции данных. достать новоприбывшие данные можно на data->onParse, и обрабатывать с задержкой.

"data->onParse": (driver, data) => {
        data.forEach(a => a.$height = 100); // 100 is a random number
 }