2013-11-01 51 views
2

我有與MVCContrib RowAttributes覆蓋屬性網格,如何兼得?

@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語句中有表達式(或者是否有另一種寫法),所以它只具有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"> 

有沒有人這樣做,也可以自己因爲我在網上找不到像這樣的東西,我認爲這很奇怪。

回答

1

如果你有機會到SQL查詢 - 你可以行號添加到數據(MSSQL見http://msdn.microsoft.com/en-GB/library/ms186734.aspx

然後檢查行的數量/ 2的MOD - 如果爲0,則class =「 gridrow」 - 如果不是的class = 「gridrow_alternate」 如:

.RowAttributes(data => new Hash(@class => data.Item.Inactive ? "inactive" : : ((data.Item.Row % 2) == 0 ? "gridrow" : "gridrow_alternate")))) 

爲我工作

1

我碰到這個際,我一直在尋找類似的解決方案。 mon12345的答案似乎有點複雜。如果您使用數據,有一個更清晰的方法來獲得所需的結果。替代方案屬性

.RowAttributes(
    data => new Hash(@class => data.Item.Inactive ? "inactive" : 
      ((data.IsAlternate ? "gridrow" : "gridrow_alternate"))) 
)