Telerik - Grid Export - ограничения по размеру - PullRequest
2 голосов
/ 18 февраля 2012

Меня попросили рассмотреть проблему с клиентским веб-сайтом, но, поскольку он был разработан другим разработчиком, у меня нет доступа к самому коду, однако их утверждения кажутся довольно нелепыми. В сетке содержится 3050 строк данных, каждый из которых содержит 12 столбцов данных (подавляющее большинство из которых имеют значение true / false), и в общей сложности 352 КБ данных при экспорте в формате CSV. Проблема заключается в том, что разработчик утверждает, что элементы управления сеткой Telerik не могут обработать экспорт этого объема данных, и это приводит к сбою .net с исключением из памяти. Это кому-то кажется семейным, или кто-то может сказать мне, что это чепуха?

Еще немного фона ...

Сервер сильно перегружен - двойной четырехъядерный процессор, 16 ГБ оперативной памяти, массив raid10 SAS и не более 10 пользователей одновременно (это сервер отчетов).

Я создам тестовое приложение, чтобы доказать этот момент клиенту и разработчику, если ваша помощь покажет, что оно того стоит.

Я буду любить тебя долго, если ты сможешь дать мне хороший ответ.

Спасибо, Тони.

Ответы [ 3 ]

2 голосов
/ 18 февраля 2012

Другим предложением будет присвоить 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 и просматривая каждую запись, затем записывая данные, см. Эту статью

2 голосов
/ 18 февраля 2012

Я только что экспериментировал с этим. У меня есть сетка Telerik, которая имеет 994 015 строк с 21 столбцом данных. Если я отфильтрую сетку, чтобы в ней было только 5000 строк данных, для экспорта потребуется около 2 секунд. Размер экспорта составляет 552 КБ. 15 000 строк занимает около 5 секунд. Когда я пытаюсь экспортировать более 50 000 строк, у меня возникает проблема тайм-аута.

0 голосов
/ 20 февраля 2012

Я сомневаюсь, что вы сможете воспроизвести эту проблему с 3000 строк и 12 столбцов при нормальных обстоятельствах.Судя по предоставленной информации, проблема заключается в одном (или смешанном) из следующего:

  • у вас есть несколько пользователей, экспортирующих эту сетку одновременно
  • большинство этих столбцов - GridTemplateColumnsу которого ItemTemplate заполнен сложными элементами управления, такими как, например, RadEditor.В этом случае экспорт не удастся, если в нем будет менее 3000 строк.

Если возможно, опубликуйте разметку сетки здесь, и я посмотрю за вами.

...