2

完全に機能するグリッドがあります

@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 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">

誰かがこれを行ったことがありますか、それともネット上でこのようなものを見つけることができないので、助けてもらえますか?

4

2 に答える 2

1

同様のソリューションを探していたときに、これに出くわしました。mon12345 からの回答は少し複雑に思えます。data.IsAlternateプロパティを使用すると、目的の結果を取得するよりクリーンな方法があります。

.RowAttributes(
    data => new Hash(@class => data.Item.Inactive ? "inactive" : 
           ((data.IsAlternate ? "gridrow" : "gridrow_alternate")))
)
于 2015-08-19T11:09:30.823 に答える