MVCContrib Grid MVC 3 Razor .RowStart

时间:2011-04-19 13:14:40

标签: asp.net-mvc-3 razor mvccontrib mvccontrib-grid

.RowStart方法的示例有问题。

比较2种语法:http://www.jeremyskinner.co.uk/2009/03/01/mvccontrib-grid-part-5-the-action-syntax/

在此

.RowStart(row => string.Format("<tr{0}>", row.IsAlternate ? "style=\"background-color:#CCDDCC\"" : ""))

row.IsAlternate抛出一个错误,因为行不是GridRow,它实际上是你的模型(以及行的数据项)。

第二种语法(ActionSyntax):

.RowStart((p,row)  => {     
             if (row.IsAlternate) { %>
                   <tr style="background-color:#CCDDCC">
             <%  }  else  { %>
                 <tr>
             <% }
    }).Render(); %>

似乎没有转化为Razor

.RowStart((x, row) => string.Format("<tr class='{0}'>", row.IsAlternate ? "grid-row" : "grid-row-alt"))

通过,但不会发出任何行更改。

有没有这个有效?

2 个答案:

答案 0 :(得分:3)

我刚刚注意到Html.Grid为你准备的一些常规内容......

鉴于以下

Html.Grid(Model.Results).Attributes(@class => "grid")

得到一个table =“grid”的表, 偶数行=“gridrow”, 和class =“gridrow_alternate”的奇数行

答案 1 :(得分:1)

不确定这是否会有所帮助,但我最近一直在做的一件事就是:

.RowAttributes(x => new Dictionary<string, object> { { "class", x.value == myValue ? "highlight" : "" } })

这允许我使用属性的css值做很多事情。那么为了支持“斑马条纹”我使用纯css(浏览器兼容性可能是一个问题,但它优雅只是不在旧浏览器上呈现)看起来像

tr:nth-child(odd) {
background-color: #eee;}

让你很好地掌控桌子。关于选择器Sitepoint child selectors

的更多信息

其他明智的你可以尝试使用google groups来获取mvccontib杰里米通常可以提供帮助。

希望这会有所帮助。