2016-12-28 9 views
1

グリッドをスクロールしていくつかの詳細項目を開いたままにしている奇妙なグラフィカルな問題があります。 テンプレート:KendoGrid:詳細アイテムが開いている間に奇妙なスクロール

<kendo-grid 
      [data]="gridView" 
      [skip]="skip" 
      [pageSize]="pageSize" 
      [scrollable]="'virtual'" 
      [rowHeight]="41" 
      [height]="700" 
      [detailRowHeight]="414" 
      (pageChange)="pageChange($event)" 
     > 
     <template kendoDetailTemplate let-dataItem> 
      <customKendoChart [chartTitle]="'A chart about '+dataItem.firstName" 
           [pollingTime]="1000" 
           [dataLength]="20"></customKendoChart> 
     </template> 
     <kendo-grid-column field="id" [width]="40" title="ID"></kendo-grid-column> 
     <kendo-grid-column field="firstName" title="First Name" [width]="120"></kendo-grid-column> 
     <kendo-grid-column field="lastName" title="Last Name" [width]="120"></kendo-grid-column> 
     <kendo-grid-column field="city" title="City" [width]="120"></kendo-grid-column> 
     <kendo-grid-column field="title" title="Title" [width]="120"></kendo-grid-column> 
     </kendo-grid> 

はコンポーネント:

export class KendoGridComponent { 
    private gridView: GridDataResult; 
    private gridData: any[]; 
    private skip: number = 0; 
    private pageSize: number = 30; 

    constructor() { 
     this.gridData = this.createRandomData(800000); 
     this.loadGridItems(); 
    } 

    private loadGridItems() { 
     this.gridView = { 
      data: this.gridData.slice(this.skip, this.skip + this.pageSize), 
      total: this.gridData.length 
     } 
    } 

    protected pageChange(event: PageChangeEvent): void { 
     this.skip = event.skip; 
     this.loadGridItems(); 
    } 

    private createRandomData(count: number) { 
     const firstNames = ["Riccardo", "Diego","Cristiano", "Gilberto", "Marco", "Angelo"], 
      lastNames = ["Brazorf", "Fanfoni", "Pravettoni", "Maramotti"], 
      cities = ["Ancona", "Topolinia", "Firenze", "Roma", "Jesi"], 
      titles = ["Engineer", "Manager", "CEO", "Esterno"]; 

     return Array(count).fill({}).map((_, idx) => ({ 
       id: idx + 1, 
       firstName: firstNames[Math.floor(Math.random() * firstNames.length)], 
       lastName: lastNames[Math.floor(Math.random() * lastNames.length)], 
       city: cities[Math.floor(Math.random() * cities.length)], 
       title: titles[Math.floor(Math.random() * titles.length)] 
      }) 
     ); 
    } 
} 

私はスクロールアップまたはダウン、私は昔の詳細項目が開か秒間表示されているこの奇妙なリフレッシュは、あります、右の置き換え時はいつでもそれは、のように見えますその後、新しいアイテムと。 それは設計上のようですか? http://plnkr.co/edit/83IijeVTardvh4lDnmOC?p=preview

答えて

2

実際にはです。コンテンツはスクロール中に表示されます。これは、テーブルのスクロール位置がリセットされるために発生しますが、コンテンツはまだレンダリングされています。スクロール中に何らかの並べ替えパネルを表示することで、経験を向上させることができます。どう思いますか?

私はこのシナリオをkendo-angular2レポに記録しました。もしあなたが好きならコメントすることができます。

+0

良いアイデアかもしれません;)問題を開いていただきありがとうございます。 – Dyd666

+0

ローディングパネルは素晴らしいでしょう。より良いplnkr(imo)ここで、私は公式の文書からplnkrをフォークし、遅いWebサービスをシミュレートするタイムアウトを追加しました:http://plnkr.co/edit/KXRFimr9oSLwCLng7K3i?p=preview –

関連する問題