2012年10月14日日曜日

[ASP.NET MVC] WebGrid のページング

WebGridはデータを表形式で表示してくれるRazor ヘルパー。
(ASP.NET WebForms の GridView のようなものと理解している)

ページングが簡単にできるのがいいと思った。

chtmlファイルのおれおれサンプル


@model IList<MvcApplication1.Models.SchoolViewModel>

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";

    // WebGridオブジェクト生成
    var grid = new WebGrid(source:Model, rowsPerPage: 3);
}

<h2>Index</h2>

@* WebGridオブジェクトでレンダリング *@

@grid.GetHtml(
columns: grid.Columns(
grid.Column("Grade", "学年")
, grid.Column("Class", "クラス")
, grid.Column("Name", "名前")
    )
)


WebGridオブジェクトのコンストラクタに rowsPerPage(1ページに表示するデータ数)を
指定するとページングできるようになる。
WebGridが生成するページングのリンクURLにはGETパラメータが付加されていて
それによって現在のページを把握しているようだ。



※表の見た目等はGetHtml()の引数で変えられる


WebGridにソースとして100件のデータを渡しても
例えば1ページ10件ごとの設定なら当然ながら10件分のデータしか表示されない。

実際ページの表示に使うデータだけをDBから取得して
WebGridでページングを行うにはどうすればよいのか?
下記のサイトにやり方が書いてあるっぽい。
http://msdn.microsoft.com/ja-jp/magazine/hh288075.aspx



でも今日は疲れたのでまた今度やる!(ヘタレ)

0 件のコメント:

コメントを投稿