Exporting large amounts of data is very slow. 8000 records with 25+ columns take approximately 50 seconds to be sent to the export action. Increasing the number of records past 8k slows the export further, to a point where it takes minutes for the data to be sent to the controller.
Exemplary configuration:
@(Html.Kendo().TreeList<MVCTreeListTest.Models.CategoryModel>()
.Name("treelist")
.Columns(columns =>
{
columns.Add().Field(e => e.Name).Width(200);
columns.Add().Field(e => e.Description).Width(300);
columns.Add().Field(e => e.Field1);
columns.Add().Field(e => e.Field2);
columns.Add().Field(e => e.Field3);
columns.Add().Field(e => e.Field4);
columns.Add().Field(e => e.Field5);
columns.Add().Field(e => e.Field6);
columns.Add().Field(e => e.Field7);
columns.Add().Field(e => e.Field8);
columns.Add().Field(e => e.Field9);
columns.Add().Field(e => e.Field10);
columns.Add().Field(e => e.Field11);
columns.Add().Field(e => e.Field12);
columns.Add().Field(e => e.Field13);
columns.Add().Field(e => e.Field14);
columns.Add().Field(e => e.Field15);
columns.Add().Field(e => e.Field16);
columns.Add().Field(e => e.Field17);
columns.Add().Field(e => e.Field18);
columns.Add().Field(e => e.Field19);
columns.Add().Field(e => e.Field20);
columns.Add().Field(e => e.Field21);
columns.Add().Field(e => e.Field22);
columns.Add().Field(e => e.Field23);
})
.Toolbar(tools => tools.Excel())
.Filterable(filterable => filterable
.Extra(false))
.Excel(excel => excel
.FileName("Test.xlsx")
.Filterable(true)
.AllPages(true)
.ForceProxy(true)
.ProxyURL(Url.Action("Export", "Home"))
)
.Sortable()
.DataSource(dataSource => dataSource
.PageSize(250)
.ServerOperation(false)
.Read(read => read.Action("GetItemCategories", "Home"))
.Model(m =>
{
m.Id(f => f.Id);
m.ParentId(f => f.ParentCategoryId);
m.Expanded(true);
m.Field(f => f.Name);
m.Field(f => f.Description);
m.Field(f => f.IsActive);
})
)
.Height(600)
)