5

ここで言及されているものと同様のWebGridを使用しています

@{
    var grid = new WebGrid(canPage: true, rowsPerPage: ThisController.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
    grid.Bind(Model.Employees, rowCount: Model.TotalRecords, autoSortAndPage: false);
    grid.Pager(WebGridPagerModes.All);
    @grid.GetHtml(htmlAttributes: new { id="grid" },
        columns: grid.Columns(
            grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { EmployeeID = item.EmployeeID })),
            grid.Column("FullName"),
            grid.Column("Title")
        ));
}

しかし、私の場合、2000 を超えるレコードが予想されます。ページの読み込みが速くなるように、各ページに読み込まれるレコードは 50 だけにしたいと考えています。ページがロードされたときに最初の 50 レコードのみがロードされるようにするにはどうすればよいですか。また、ユーザーが page2 をクリックしたときに、次の 50 セットのレコードをロードしたいとします。似たようなことに直面した方は、サンプルコードを教えてください

4

4 に答える 4

5

この MSDN マガジンの記事は、あなたが望むものを示しています。

ASP.NET MVC で WebGrid を最大限に活用する

このセクションをお読みください: ページングとソートの追加

ご覧のとおり、渡すデータには製品の完全なリストが含まれています (この例では 295 個の製品が含まれていますが、さらに多くのデータが取得されるシナリオを想像することは難しくありません)。返されるデータの量が増えるにつれて、同じ 1 ページのデータをレンダリングしながら、サービスとデータベースにかかる負荷が増加します。しかし、より良いアプローチがあります: サーバー側のページングです。この場合、現在のページを表示するために必要なデータのみ (たとえば、5 行のみ) をプルバックします。

于 2012-07-30T18:00:54.500 に答える
0

このリンクを参照してください。大量のデータを含む webgrid でのページングとまったく同じ問題と、それに対する素晴らしい解決策について説明しています。

WebGrid Web ヘルパーによる効率的なページング

お役に立てれば !

于 2012-07-31T06:04:45.430 に答える
-1

@{ var grid = new WebGrid(canPage: true, rowsPerPage: 50 , canSort: true, ajaxUpdateContainerId: "grid");

-残りのコードはあなたのコードと同じです

}

rowsperpage:を表示したい行数に変更するだけです

于 2014-03-10T08:27:11.383 に答える
-2
List<WebGridColumn> webGridColumn=new List<WebGridColumn>();
var grid=new WebGrid(source:model,
defaultSort:"stk_code",
rowsPerPage:Model.Count(),
canPage:true,
canSort:true);
webGridColumn.Add(grid.Column("stcode",header:"Stock Code",canSort:false));
于 2013-05-28T07:08:30.153 に答える