2012-02-17 12 views
1

クライアントのWebサイトで問題を確認するように頼まれましたが、別の開発者によって開発されたため、コード自体にアクセスできませんが、申し訳はありません。グリッドには3050行のデータがあり、それぞれに12列のデータ(大部分は真/偽)とCSVとしてエクスポートされたときの合計352KBのデータがあります。問題は、開発者がTelerikグリッドコントロールがこの量のデータのエクスポートを処理できず、.netがメモリ不足の例外でクラッシュすることを引き起こしていると主張していることです。これは誰にも親しみを与えてくれるのでしょうか、誰かがこれがナンセンスだと私に伝えることができますか? 、デュアルクワッドのXeonラム、RAID10 SASアレイと一度に10人のユーザの唯一最大の16ギガバイト(これは、レポートサーバーです) -Telerik - グリッドエクスポート - サイズの制限

いくつかのより多くの背景...

Serverは、過駆動の大幅です。

あなたの助けが私の価値があることを示している場合は、この点をクライアントと開発者に証明するためのテストアプリケーションを作成します。

あなたが私に良い答えを与えることができれば、私は長い時間を愛するでしょう。

ありがとう、 トニー。

+0

申し訳ありませんが、これは古いものですが、投稿するのを忘れた解決策がありました。私は100,000行のデータを使ってテストを作成し、わずか数秒の遅延で50万行を出力するために、厄介なWebサーバー(2GBのRAM、DC Intelチップ)を手に入れました。問題の開発者はプログラミングが面倒だっただけでなく、データベースとは別にデータの各行を選択し、接続間でオブジェクトを適切に閉じないようにしていました。 – tonyenkiducx

答えて

2

私はこれを実験しました。私は994,015行と21列のデータを持つtelerikグリッドを持っています。グリッドをフィルタリングして5000行のデータしかない場合、エクスポートに約2秒かかります。輸出の規模は552KBです。 15,000行に約5秒かかります。 50,000行以上をエクスポートしようとすると、タイムアウトの問題が発生します。

2

エクスポートボタンのクリックイベントでAllowPagingをfalseに設定し、エクスポート操作を実行することをお勧めします。

protected void Button1_Click1(object sender, EventArgs e) 
{ 
     RadGrid1.MasterTableView.AllowPaging = false; 
     RadGrid1.Rebind(); 
     RadGrid1.ExportSettings.IgnorePaging = true; 
     RadGrid1.ExportSettings.OpenInNewWindow = true; 
     RadGrid1.MasterTableView.ExportToCsv(); 
} 

これは非常に一般的な問題です。回避策はありませんが、RadGridの使用を止めるにはResponse.Writeを使用します。私はSqlDataReaderを使用してこの問題を回避し、すべてのレコードをループしてデータを書き出します。article

0

通常の状況下でこの問題を3000行12列で再現することはできません。与えられた情報から判断すると、問題は、次のいずれか(またはミックス)です:

  • お持ち同時に、このグリッドをエクスポートする複数のユーザーを持つItemTemplateには、複雑で満たされている
  • これらの列の最もありGridTemplateColumns RadEditorなどのコントロールこの場合、エクスポートは3000行未満で失敗します。

可能であれば、ここにグリッドマークアップを投稿すれば、私はあなたを見ていきます。