Kendo-ui-angular2网格IE 11中的水平滚动问题

时间:2016-11-21 11:49:00

标签: angular kendo-grid kendo-ui-angular2

在尝试水平滚动Kendo UI Angular2网格时,我遇到IE 11缺乏性能。有时列数可能会发生变化。至少我每次都有30列。 IE要么冻结UI超过10秒,要么崩溃。

我的网格版本是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>
编辑:更新网格高达0.6.2,与IE相同甚至Chrome的思维时间超过预期。 示例是here

1 个答案:

答案 0 :(得分:1)

使用虚拟滚动时,不要将网格绑定到完整数据(数千行),而只绑定到当前分页数据。这就是使虚拟滚动快速的原因 - 只渲染当前可见的数据。这显示在virtual scrolling example in the documentation

np.random.seed(1)
df = pd.DataFrame(np.random.randint(10, size=(10,10)))
df.columns = list('ABCDEFGHIJ')
print (df)

In [293]: %timeit (df.apply(lambda r: df.sum()[r.name]*df.sum(1)[r.index]/df.sum().sum()))
100 loops, best of 3: 14.1 ms per loop

In [294]: %timeit (df.sum(1).to_frame().dot(df.sum().to_frame().T).div(df.sum().sum()))
1000 loops, best of 3: 1.19 ms per loop

请参阅updated plunker snippet