2013-11-01 4 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; 
} 

Однако это перекроет все сетки строк теперь «» или «неактивный», как это должно есть выражение in для if else (или есть другой способ записать его), так что у него просто есть if-часть инструкции? Я попытался поставить только оператор if там, но он жалуется, что мне не хватает выражения return, поэтому не могу этого сделать.

Я хочу, чтобы gridrow и gridrow_Alternative, как это и просто переопределить один из тех, динамически ...

Так что бы изменилось от

gridrow gridrow_Alternative gridrow gridrow_Alternative 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 Query - можно добавить номер строки в данных (MSSQL см http://msdn.microsoft.com/en-GB/library/ms186734.aspx)

Затем проверьте мод из строки/номер 2 - если 0, то класс = " gridrow»- если нет, то класс =„gridrow_alternate“ например:

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

работал для меня

1

Я наткнулся на это, как я искал подобное решение. Ответ от mon12345 кажется немного сложным. Существует более чистый способ получить желаемый результат, если вы используете данные .IsAlternate

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