Telerik - 网格导出 - 大小限制

时间:2012-02-17 20:23:06

标签: .net csv grid telerik export

我被要求审查客户网站的问题,但由于它是由另一个开发人员开发的,我无法访问代码本身,但他们的声明似乎非常荒谬。网格中有3050行数据,每行有12列数据(绝大多数是真/假),当导出为CSV时总共有352KB的数据。问题是开发人员声称Telerik网格控件无法处理此数据量的导出,并导致.net因outofmemory异常而崩溃。这对任何人来说听起来都很熟悉,或者有人能告诉我这是胡说八道吗?

更多背景......

服务器功耗极大 - 双四核,16GB内存,raid10 SAS阵列,一次最多只有10个用户(这是一个报告服务器)。

我将构建一个测试应用程序,向客户和开发人员证明这一点,如果你的帮助表明我值得这样做。

如果能给我一个好的答案,我会爱你很久。

谢谢你, 贝。

3 个答案:

答案 0 :(得分:2)

我刚试验过这个。我有一个telerik网格,有994,015行,有21列数据。如果我过滤网格使其只有5000行数据,则导出大约需要2秒。出口的大小是552KB。 15,000行大约需要5秒钟。当我尝试导出超过50,000行时,我开始出现超时问题。

答案 1 :(得分: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(); 
 } 

关于尺寸限制..这是一个非常常见的问题。没有办法,但放弃使用telerik RadGrid只需使用Response.Write。我通过使用SqlDataReader解决了这个问题并循环遍历每条记录,然后将数据写出来看看article

答案 2 :(得分:0)

我怀疑在正常情况下你能用3000行12列重现这个问题。根据提供的信息判断,问题是以下一个(或混合):

  • 您有多个用户同时导出此网格
  • 这些列中的大多数是GridTemplateColumns,其ItemTemplate填充了复杂的控件,例如RadEditor。在这种情况下,导出将失败,远远少于3000行。

如果可能的话,在这里发布网格标记,我会看一下你。