如何在没有回调的情况下使用DevExpress GridView

时间:2012-07-04 13:59:08

标签: c# asp.net-mvc devexpress

我的控制器控制器中有这个代码:

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方法。视图显示,但所有节点都已折叠。如果我单击一个节点,它将回调到控制器,再次将为数据库创建一个新查询。排序也会发生同样的事情。我不希望每次都有对数据库的请求,那么如何避免回调呢?

1 个答案:

答案 0 :(得分:3)

GridView是一个服务器端控件,它在服务器上执行所有数据计算,并且只向客户端发送一小部分数据。由于客户端没有所有可用数据,因此无法在必要时对其进行重新排序或重新分组。它会向服务器发送回调。

您所能做的就是加快回调速度。您应该做的第一件事是启用服务器模式,这将大大减少从数据库传输的数据量。您可以通过以下方式启用它:http://documentation.devexpress.com/#AspNet/CustomDocument3726