1

コントローラーコントローラーに次のコードがあります。

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メソッドを実行します。ビューは表示されますが、すべてのノードが折りたたまれています。ノードをクリックすると、コントローラにコールバックされ、データベースへの新しいクエリが再び作成されます。並べ替えでも同じことが起こります。データベースへのリクエストを毎回発生させたくないので、どうすればコールバックを回避できますか?

4

1 に答える 1

3

GridView は、サーバー上ですべてのデータ計算を実行し、ごく一部のみをクライアントに送信するサーバー側コントロールです。クライアント側ではすべてのデータを利用できるわけではないため、必要に応じて再ソートまたは再グループ化することはできません。代わりに、コールバックをサーバーに送信します。

できることは、コールバックを高速化することだけです。最初にすべきことは、サーバーモードを有効にすることです。これにより、データベースから転送されるデータの量が大幅に削減されます。有効にする方法は次のとおりです。http://documentation.devexpress.com/#AspNet/CustomDocument3726

于 2012-07-05T13:30:29.033 に答える