我有一个与
完美配合的网格@Html.Grid(Model.SearchResults).Columns(column =>
{
//grid code here
}).Attributes(@class => "grid", width => "100%")
这被标记为css:
.gridrow
{
border-top: 1px solid #DDDDDD;
}
.gridrow_alternate
{
background-color: #F2F2EA;
border-top: 1px solid #DDDDDD;
}
哪一切都很好,并将替代颜色放在网格上。
但是,如果数据回传无效,我想覆盖带有灰色行的某些网格行。
所以我尝试了.RowAttributes
.RowAttributes(data => new Hash(@class => data.Item.Inactive ? "inactive" : ""))
增加了css:
.inactive
{
border-top: 1px solid #DDDDDD;
background-color: lightgrey;
}
然而,这将覆盖所有网格行,现在变为“”或“非活动”,因为它需要具有if for else的表达式(或者是否有其他方式来编写它)所以它只有if的一部分声明?我试图把if语句放在那里但它抱怨我错过了一个return语句所以不能这样做。
我想保留gridrow和gridrow_Alternative,并简单地覆盖其中一个...
所以它会从
改变gridrow gridrow_Alternative gridrow gridrow_Alternative gridrow
是:
gridrow gridrow_Alternative 待用 gridrow_Alternative gridrow
因此它保持交替的色带,然后如果一个不活动,它会在TR中单独将其变为非活动状态,如下所示:
<tr class="gridrow">
<tr class="gridrow_Alternative">
<tr class="inactive">
<tr class="gridrow_Alternative">
<tr class="gridrow">
有没有人这样做过,或者他们能帮忙,因为我在网上找不到这样的东西,我认为这很奇怪。
答案 0 :(得分:1)
如果您有权访问SQL查询 - 您可以向数据添加行号(对于MSSQL,请参阅http://msdn.microsoft.com/en-GB/library/ms186734.aspx)
然后检查行号/ 2的mod - 如果为0则为class =&#34; gridrow&#34; - 如果没有,class =&#34; gridrow_alternate&#34; e.g:
.RowAttributes(data => new Hash(@class => data.Item.Inactive ? "inactive" : : ((data.Item.Row % 2) == 0 ? "gridrow" : "gridrow_alternate"))))
为我工作
答案 1 :(得分:1)
我遇到了这个,因为我正在寻找类似的解决方案。 mon12345的答案似乎有点复杂。如果您使用 data.IsAlternate 属性
,有一种更简洁的方法可以获得所需的结果.RowAttributes(
data => new Hash(@class => data.Item.Inactive ? "inactive" :
((data.IsAlternate ? "gridrow" : "gridrow_alternate")))
)