我正在使用Telerik Grid。我需要根据视图模型中的某些属性为整行设置背景颜色。我试着通过在每个列的IF语句中设置背景来实现如下,但是backgound仅适用于元素而不是所有单元格(td)。此外,它似乎是一种非常“肮脏”的方式来完成这项任务。
@(Html.Telerik().Grid(Model.SomeItems).Name("Grid")
.Columns(columns =>
{
columns.Template(
@<text>
@if (Model.IsOfSpecialColor)
{
<div class="gridRowBackground">
@Html.ActionLink(...)
</div>
}
else
{
@Html.ActionLink(...)
}
</text>).Title("Blabla");
});
答案 0 :(得分:11)
您可以使用onRowDataBound
事件
@(Html.Telerik().Grid<Customer>()
.Name("Grid2")
.DataBinding(d => d.Ajax().Select("Select", "Home"))
.ClientEvents(e => e.OnRowDataBound("onRowDataBound"))
)
,功能是
<script>
function onRowDataBound(e) {
if (e.dataItem.ID == 2) {
e.row.style.backgroundColor = "grey";
}
}
</script>
答案 1 :(得分:2)
如果您使用的是服务器数据绑定,则可以使用CellAction。但是,如果您使用的是ajax数据绑定,则需要使用Tassadaque建议的解决方案。
@(Html.Telerik().Grid(Model.SomeItems)
.Name("Grid")
.CellAction(cell =>
{
if (cell.DataItem.IsOfSpecialColor.Value)
{
cell.HtmlAttributes["style"] = "background-color: red";
}
})