2012-07-30 9 views
5

で並べ替えがMVC3かみそりWebGridのページングと私は1つに類似したWebGridを使用しています2000件の以上のレコードを

@{ 
    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") 
     )); 
} 

hereを述べた。しかし、私の場合は私が2000件の以上のレコードを期待していますレコードは各ページにロードされるため、ページがより高速に読み込まれます。ページがロードされたときに最初の50レコードだけが読み込まれるようにするにはどうしたらいいですか?ユーザーがpage2をクリックすると、次の50レコードのセットなどをロードします。 あなたのいずれかが類似したものに直面し、いくつかのサンプルコードで

答えて

4

を私に提案してくださいこのMSDNマガジンの記事は、あなたが欲しいものを示しています。

Get the Most out of WebGrid in ASP.NET MVC

は、このセクションを読む:ページングとソート

を追加します

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

+0

良い答えを表示したい行数に:コードを-remaining

はちょうどrowsperpageを変更

}

あなたのコードと同じです。私が追加すると思うのは、2つのデータベースクエリが必要になることだけです。 1つはページングされたデータを取得するため(この例では5行)、ページングを正しくセットアップするための行の合計数を取得するためのクエリです。 – Gromer

0

このリンクを参照してください。これは、大量のデータと素晴らしいソリューションを備えたwebgridのページングと同じ問題を説明しています。

Efficient Paging with WebGrid Web Helper

は、この情報がお役に立てば幸い!

-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)); 
-1

@ { VARグリッド=新しいWebGridの(canPage:真、rowsPerPage:50、canSort:真、ajaxUpdateContainerId: "グリッド")。 uは

+0

WebGridはまだデータセット全体をメモリにロードします。 – stuartd

関連する問題