我的控制器控制器中有这个代码:
List<TResult> list = db.GetBigData();
return PartialView("GridViewPartialView", list);
查看:
@Html.DevExpress().GridView(
settings =>
{
settings.Name = "gvGrouping";
settings.CallbackRouteValues = new { Controller = "Display", Action = "GridViewPartialView" };
settings.SettingsBehavior.AllowSort = false;
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.SettingsPager.Visible = false;
//create many column
settings.Settings.ShowGroupPanel = true;
};
}).Bind(Model).GetHtml()
在第一次运行时,控制器执行GetBigData
方法。视图显示,但所有节点都已折叠。如果我单击一个节点,它将回调到控制器,再次将为数据库创建一个新查询。排序也会发生同样的事情。我不希望每次都有对数据库的请求,那么如何避免回调呢?
答案 0 :(得分:3)
GridView是一个服务器端控件,它在服务器上执行所有数据计算,并且只向客户端发送一小部分数据。由于客户端没有所有可用数据,因此无法在必要时对其进行重新排序或重新分组。它会向服务器发送回调。
您所能做的就是加快回调速度。您应该做的第一件事是启用服务器模式,这将大大减少从数据库传输的数据量。您可以通过以下方式启用它:http://documentation.devexpress.com/#AspNet/CustomDocument3726