SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Infragistics NetAdvantageチュートリアル(AD)

jQuery対応グリッドをASP.NET MVCで利用し、リッチな表現を簡単に実現する

  • X ポスト
  • このエントリーをはてなブックマークに追加

テンプレートプラグインの組み込みと列定義の変更

 まずはjQueryテンプレートプラグインを_Layout.cshtmlに組み込みます。本記事執筆時点はベータ版という扱いとなっていることに注意してください。

_Layout.cshtml
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js"></script>

 列の定義に関しては複数の列データをまとめるため、現在の列数は必要ありません。今回は4列を残し削除しました。また併せてヘッダーテキスト、幅を設定します。

Index.cshtml
.Columns(columns =>
{
    columns.For(x => x.ID).HeaderText("ID") .Width("100px");
    columns.For(x => x.Name).HeaderText("モール名") .Width("200px");
    columns.For(x => x.OpenTime).HeaderText("営業時間") .Width("200px");
    columns.For(x => x.ShoppingCart).HeaderText("設備・サービス") .Width("400px");
})

テンプレートの有効化と定義

 igGridでテンプレートを利用するため、JQueryTemplate, RowTemplateプロパティを設定します。RowTemplateプロパティでは各行に適用されるテンプレートを定義することになります。サンプルとしてそれぞれの列に固定値を割り当てるテンプレート定義は下記のとおりとなります。

.JQueryTemplating(true)
//テンプレートの定義
.RowTemplate("<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>")

 この場合の実行結果は下記のようにそれぞれのセルに対して固定の値が設定されました。

図10 jQueryテンプレートサンプル
図10 jQueryテンプレートサンプル

 上記の定義ではテンプレートの定義部分を文字列として定義していますが、複雑なテンプレートを生成する場合、可読性が落ちてしまいます。このような場合にはテンプレート部分を外だしで定義できます。

Index.cshtml
@*テンプレート*@
<script id="GridRowTemplate" type="text/x-jquery-tmpl">
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
</script>

@(Html.Infragistics().Grid<InfraShoppingMall.Models.Mall>()
    .ID("igGrid1")
    .DataSourceUrl(Url.Action("GetMallList"))
    .Columns(columns =>
    {
        columns.For(x => x.ID).HeaderText("ID") .Width("100px");
        columns.For(x => x.Name).HeaderText("モール名") .Width("200px");
        columns.For(x => x.OpenTime).HeaderText("営業時間") .Width("200px");
        columns.For(x => x.ShoppingCart).HeaderText("設備・サービス") .Width("400px");
    })
    .JQueryTemplating(true)
    // テンプレート呼び出し
    .RowTemplate("{{tmpl '#GridRowTemplate'}}")
    .DataBind()
    .Render()
    )

次のページ
テンプレートの設定

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Infragistics NetAdvantageチュートリアル連載記事一覧

もっと読む

この記事の著者

インフラジスティックス・ジャパン株式会社 池原 大然(イケハラ ダイゼン)

国内ベンチャー企業にて.NETエンジニアとして開発に従事、2007年インフラジスティックス・ジャパンに入社。現在デベロッパー エバンジェリストとして、.NETやWPF/Silverlight製品や技術の啓蒙活動を行う。Microsoft MVP for Client App Dev 2010/04 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6178 2011/09/27 17:53

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング