2016-11-21 5 views
0

Я столкнулся с отсутствием производительности в IE 11 при попытке прокручивать сетку Kendo UI Angular2 горизонтально. Время от времени количество столбцов может меняться. По крайней мере, у меня есть 30 столбцов каждый раз. IE либо замораживает пользовательский интерфейс более 10 секунд, либо даже разбился.Контент Kendo-ui-angleular2 Горизонтальная прокрутка в IE 11

Моя сетка версии 0.5.0. Вот настройки моей сетки:

<kendo-grid 
    [data]="view" 
    [scrollable]="'virtual'" 
    [height]="gridHeight" 
    [pageSize]="pageSize" 
    [rowHeight]="rowHeight" 
    [skip]="skip" 
    [sortable]="{ mode: 'multiple' }" 
    [sort]="sort" 
    (sortChange)="sortChange($event)" 
    (pageChange)="pageChange($event)"> 
    <template ngFor [ngForOf]="columns" let-column> 
     <kendo-grid-column 
      field="{{column}}" 
      [headerStyle]="{'border': 'none', 'font-size': 'medium'}" 
      [width]="computeWidth(column)" 
      [style]="{'border': 'none', 'font-size': 'small'}"> 
      <template kendoCellTemplate let-dataItem> 
       <div> 
        {{dataItem[column] | truncate : 75 }} 
       </div> 
      </template> 
     </kendo-grid-column> 
    </template> 
</kendo-grid> 

EDIT: обновить сетку до 0,6.2, то же самое с IE, даже Chrome думает дольше, чем ожидалось. Пример here

+0

Можете ли вы предоставить исполняемый образец, который показывает функцию 'computeWidth' и, по крайней мере, ряд издевающихся данных? –

+0

Просьба предоставить несколько инструкций, как это сделать? –

+0

Вы можете использовать кнопку «Открыть в Plunker» из одного из примеров на [сайте документации] (www.telerik.com/kendo-angular-ui/components/grid/), чтобы загрузить пример. Затем вы можете добавить свой код в файл 'app/app.component.ts', пока плукер не покажет проблему. –

ответ

1

При использовании виртуальной прокрутки не привязывайте сетку к полному количеству данных (тысячи строк), а только к текущим вычисленным данным. Это ускоряет виртуальную прокрутку - отображаются только текущие видимые данные. Это показано в virtual scrolling example in the documentation.

private loadProducts(): void { 
    this.gridData = { 
     data: this.data.slice(this.skip, this.skip + this.pageSize), 
     total: this.data.length 
    }; 
} 

См. updated plunker snippet.

+0

Спасибо! А как насчет фильтрации и сортировки в версии 0.6.2? –

+0

Вы можете использовать пакет [DataQuery] (http://www.telerik.com/kendo-angular-ui/components/dataquery/) для обработки данных. См. [Пример сортировки] (http://www.telerik.com/kendo-angular-ui/components/grid/#sorting). Фильтрующий интерфейс еще не доступен - он будет представлен в будущей версии. –