インフラジスティックス・ジャパン株式会社Blog

インフラジスティックス・ジャパン株式会社のチームメンバーが技術トレンド、製品Tips、サポート情報からライセンス、日々の業務から感じることなど、さまざまなトピックについてお伝えするBlogです。

ASP.NET Core Razor Pages で igGrid を使ってみよう

こんにちは、テクニカルコンサルティングチームの三田です。

以前に、ASP.NET Core Razor Pages 関連の記事として、Hello World アプリケーションの作成プロジェクトの構成をご紹介しました。今回は、ASP.NET Core Razor Pages に igGrid を組み込んでみます。

Ignite UI for jQuery の読み込み

Ignite UI for jQuery を読み込む手順を示します。

_Layout.cshtml に、Ignite UI for jQuery のスタイルファイルを読み込むための、RenderSectionAsync メソッドの呼び出しを加えます。このメソッド呼び出しにより、個別のページ(例えば Index.cshtml など)に @section Styles { ... } と記載することで、スタイルファイルをインポートすることができるようになります。下記コードスニペットの8行目をご覧ください。

_Layout.cshtml

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - ASPNET_RazorPages_igGrid</title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <!--追加-->@await RenderSectionAsync("Styles", required: false)
    <link rel="stylesheet" href="~/css/site.css" />
</head>
<body>
    ...
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>

    @await RenderSectionAsync("Scripts", required: false)
</body>
</html>

igGrid の初期化

igGrid にデータをバインドし、フィルタリング機能とページング機能を有効化します。Styles 及び Scripts セクションに、Ignite UI for jQuery 製品をインポートしています。これにより、igGrid を初期化するページにのみに、これらスタイルファイル・スクリプトファイルをインポートすることができます。

Index.cshtml

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<table id="grid"></table>

@section Styles{
    @*製品ファイルのインポート*@
    <link href="https://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet">
    <link href="https://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet">
}
@section Scripts{
    @*製品ファイルのインポート*@
    <script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
    <script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script>
    <script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script>
    <script>
        $(function () {
            //バインドデータの準備、および、igGrid の初期化
            var northwindProducts = [
                { "ProductID": 1, "ProductName": "果汁100% オレンジ", "CategoryName": "飲料", "InStock": 39 },
                ...
                { "ProductID": 30, "ProductName": "いくら", "CategoryName": "魚介類", "InStock": 10 }
            ];

            $("#grid").igGrid({
                dataSource: northwindProducts,
                columns: [
                    { headerText: "製品 ID", key: "ProductID", dataType: "number", width: "25%" },
                    { headerText: "製品名", key: "ProductName", dataType: "string", width: "25%" },
                    { headerText: "カテゴリ", key: "CategoryName", dataType: "string", width: "25%" },
                    { headerText: "在庫数", key: "InStock", dataType: "number", width: "25%" }
                ],
                features: [

                    {
                        name: "Filtering",
                        type: "local"
                    },
                    {
                        name: "Paging",
                        pageSize: 10
                    }
                ]
            });
        });
    </script>
}

実行結果

ASP.NET Core Razor Pages で igGrid を利用することができました。 f:id:yukimita:20210324174857p:plain

最後に

3 回にわたって、ASP.NET Core Razor Pages での Hello World、ファイルやフォルダの構成、Ignite UI for jQuery グリッドの表示までをご紹介しました。今回作成したサンプルのダウンロードはこちらです。

この記事に関して何かご質問・ご不明な点がありましたら、お気兼ねなくインフラジスティックスまでお問い合わせください。