かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

IgniteUIのigGridでテンプレート列を使う

ASP.NET MVCで使う方法をメモっとく。

@using Infragistics.Web.Mvc

@{
    ViewBag.Title = "Index";
}

<script type="text/javascript">
    function format(x) {
        return x + "歳";
    }
</script>

<h2>Index</h2>

@(Html.Infragistics()
    .Loader()
    .CssPath(Url.Content("~/Content/css"))
    .ScriptPath(Url.Content("~/Scripts/js"))
    .Render())

@(Html.Infragistics()
    .Grid<WebApplication1.Controllers.Person>()
    .ID("grid")
    .Columns(columns =>
     {
         columns.For(x => x.Name).HeaderText("なまえ");
         columns.For(x => x.Age).HeaderText("ねんれい").FormatterFunction("format");
         columns.For(x => x.Even).Template("<div style='width:15px;height:15px;background-color:${AgeColor};'></div>");
     })
     .DataSourceUrl(Url.Action("GetPeople"))
     .Features(features =>
     {
         features.Filtering().Type(OpType.Local);
     })
     .Render())

ポイントはcolumns.For(x => x.Even)の行。Templateを使ってテンプレートを流し込んでる。テンプレートの中では${}でプロパティの値を流し込める。覚えておこう。