2012-09-19 44 views
4

我正在使用WebGrid显示项目列表,Webgrid MVC 3条件行样式

我喜欢根据条件设置行的背景颜色。我想设置整行的背景颜色,而不仅仅是一个单元格。

任何示例?

谢谢

回答

3

这是一个古老的问题,但我只是偶然发现并有一个答案,我不认为太hacky。前面提供的答案仅适用于如果您用于有条件地更改背景颜色的值是表格单元格的值。

如果不是这种情况,您可以使用WebGridColumn的Format属性为表格行中的第一个单元格设置data-属性。在这里,我的表的第一列包含超链接的ID。我在我的代码隐藏(MVC中的控制器操作)中定义它,并且从对象的IsInError属性中添加了data-in-error属性。您可以以任何对您的应用程序有意义的方式设置此属性的值。

new WebGridColumn 
{ 
    ColumnName = "Id", 
    Header = "ID", 
    Format = (x) => new HtmlString(String.Format("<a href=\"#\" data-in-error=\"{0}\">{1}</a>", x.Value.IsInError, x.Value.Id)) 
}); 

然后,使用jQuery,我发现在我的表在该行的第一个单元格锚行的,和阶级该行设置为“错误”。

$(document).ready(function() { 
    $('table tbody tr td:first-child a[data-in-error="True"]').each(function() { 
     $(this).parent().parent().addClass('error'); 
    }); 
}); 

希望这会有所帮助。