我想要完成的是将表格上的交替行设置为不同的CSS样式。
我的控制器返回一个简单列表,并通过ViewBag将其传递给视图。
我的观看代码如下:
@{
int _recordCount = 1;
foreach (var _oEstimateDetails in ViewBag.EstimateDetailData)
{
if (_recordCount == 1)
{
<tr class="EstimateDetailDataRow">
}
if (_recordCount == 1)
{
</tr><tr class="EstimateDetailDataAlternateRow">
_recordCount = 0;
}
</tbody>
<td class="EstimateDetailData">
@_oEstimateDetails.EstimateLineDescription
</td>
<td class="EstimateQuantityData">
@_oEstimateDetails.EstimateLineQuantity
</td>
<td class="EstimateRateData">
@_oEstimateDetails.EstimateLineRate
</td>
<td class="EstimateLineTotalData">
@(_oEstimateDetails.EstimateLineQuantity * _oEstimateDetails.EstimateLineRate)
</td>
</tr>
_recordCount = _recordCount + 1;
}
}
由于这是我第五次尝试解决这个问题,我即将把头发拉出来。任何帮助都会非常感激。
答案 0 :(得分:3)
假设<tbody>
在编程代码之前就开始了,我认为你早就关闭了这里的代码片段,它应该可以工作:
<tbody>
@{
for(int i =0; i < ViewBag.EstimateDetailData.Count(); i++)
{
var _oEstimateDetails = ViewBag.EstimateDetailData.ElementAt(i);
<tr class="@(i % 2 == 0 ? "EstimateDetailDataRow" : "EstimateDetailDataAlternateRow")">
<td class="EstimateDetailData">
@_oEstimateDetails.EstimateLineDescription
</td>
<td class="EstimateQuantityData">
@_oEstimateDetails.EstimateLineQuantity
</td>
<td class="EstimateRateData">
@_oEstimateDetails.EstimateLineRate
</td>
<td class="EstimateLineTotalData">
@(_oEstimateDetails.EstimateLineQuantity * _oEstimateDetails.EstimateLineRate)
</td>
</tr>
}
}
</tbody>
答案 1 :(得分:2)
通常,jquery用于执行此操作(不是您的方法)。
这是别人(不是我自己)开发的代码。
例如,请参阅: JQuery <tr> stripe odd/even rows
<script type="text/javascript">
$(document).ready(function () {
$("table > tbody tr:odd").css("background-color", "#F7F7F7");
})
</script>