2017-08-15 5 views
0

すべての行にチェックボックスが付いたグリッドがあり、試行しましたgrid.removeRowdataSource.remove(item)splice()すべてが機能しません。剣道のグリッドから複数の行を削除すると、ページが応答しなくなる

グリッドはチェックボックス付きの4列で構成され、レコードは約1.6kです。各行のチェックボックスに基づいて削除ボタンをクリックすると、ページが反応しなくなります。ここで

は私のコードです:

var raw = $scope.DataSource.data(); 
var length = raw.length; 
var item, i; 
for (i = length - 1; i >= 0; i--) { 
    item = raw[i]; 
    if(!item.IsSelect) //IsSelect here is the boolean variable 
     $scope.DataSource.remove(item); 
} 

任意のアイデア?

+0

私の推測では、レコードが削除されるたびにグリッドを再描画しようとしています。したがって、グリッドが1600回レンダリングされているため、ページが反応しなくなります。しかし、より詳細な/コード/ jsfiddleなしで我々は問題について多くのことを言うことはできません –

答えて

0

まあ、私も同じことをしています、そして、私は角2の剣道グリッドが実際にパフォーマンスが良くないと言う必要があります。 また、私はアンギュラ2グリッドでそれをしましたが、それはAngular1であなたを助けるでしょう。

編集:私はグリッドから選択された行データを削除するために、スプライスを使用しています:

this.array1.push(this.checkedArrayData[i]); 
this.array2.splice(this.checkedArrayData[i], 1); 

//は

this.array2 = this.array2.slice(); 
0

グリッドに配列データソースを再割り当てforループ外項目を削除してみてください。おそらく、それぞれの削除後にいくつかの再描画があるので、ブラウザがフリーズします。

関連する問題