如果您想使用 WebGrid,您唯一真正的选择是在td
渲染后通过 Javascript 根据单元格值设置样式。该style
参数将仅接受表示要应用的 CSS 类的字符串。
或者,您可以根据值有条件地设置参数中的内容,用 aformat
填充或然后您可以设置样式,例如:td
span
div
<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: @<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>