WebGrid を使用する場合、唯一の実際のオプションは、td
レンダリング後に Javascript を介してセル値に基づいてスタイルを設定することです。パラメータは、style
適用する CSS クラスを表す文字列のみを受け入れます。
format
または、値に基づいてパラメーターのコンテンツを条件付きで設定td
し、span
ordiv
を入力して、次のようにスタイルを設定することもできます。
<style>
td.nopadding{padding: 0;margin: 0;}
.green{background-color:green;display: inline-block;width: 100%;height: 100%;}
.yellow{background-color:yellow;display: inline-block;width: 100%;height: 100%;}
</style>
<div id="grid">
@grid.GetHtml(
tableStyle : "table",
alternatingRowStyle : "alternate",
headerStyle : "header",
columns: grid.Columns(
grid.Column("Country", style: "nopadding", format: @<text>@Html.Raw(item.Country == "USA" ?
"<span class=\"green\">" + item.Country +"</span>" :
"<span class=\"yellow\">" + item.Country +"</span>")</text>))
)
</div>
更新: 次のコードは、より複雑な if..else ステートメントが format パラメーターに含まれていることを示しています。
format: @<text>@if(item.YourProperty == null){
@Html.Raw("<span class=\"none\">" + some_value +"</span>")
}
else{
if(item.YourProperty.Contains(",")){
@Html.Raw("<span class=\"multi\">" + some_value +"</span>")
}
else{
@Html.Raw("<span class=\"single\">" + some_value +"</span>")
}
}
</text>