交替行颜色MVC

时间:2011-12-21 17:00:01

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-4.0

我需要设计一个交替行颜色的表格。下面是编写代码,但它不起作用。可能是MVC的一些语法问题。请建议。

@for (int i = 1; i <= 10; i++)

{

        var rowColor = "D9E6C4";
        <tr style="background-color:@rowColor;" >
            <td>apoorva</td>
        </tr>
        if (@rowColor.Equals("#ffffff"))
        {
            rowColor = "#D9E6C4";
        }
        else
        {
            rowColor = "#ffffff";
        }
}

8 个答案:

答案 0 :(得分:11)

取自http://davidwalsh.name/css-tables-css3-alternate-row-colors

的CSS3示例
tr:nth-child(odd)    { background-color:#ffffff; }
tr:nth-child(even)    { background-color:#D9E6C4; }

答案 1 :(得分:10)

...试

@for (int i = 1; i <= 10; i++)
{
    string rowColor;
    if(i % 2 == 0)
    {
        rowColor = "D9E6C4";
    }
    else
    {
        rowColor = "ffffff";
    }
    <tr style="background-color:#@rowColor;" >
        <td>apoorva</td>
    </tr>
}

答案 2 :(得分:5)

在声明中声明rowColor

@{ var rowColor = "D9E6C4"; }
@for (int i = 1; i <= 10; i++)
{
    <tr style="background-color:@rowColor;" >
        <td>
            apoorva
        </td>
    </tr>
    if (@rowColor.Equals("#ffffff"))
    {
        rowColor = "#D9E6C4";
    }
    else
    {
        rowColor = "#ffffff";
    }
}

答案 3 :(得分:4)

您应该使用:

    if (rowColor.Equals("#ffffff"))
    {
        rowColor = "#D9E6C4";
    }
    else
    {
        rowColor = "#ffffff";
    }

另一种方法是使用mod来选择颜色:

    <tr style='background-color:@(i%2 == 0 ? "#D9E6C4":"#ffffff"  );'>
        <td>apoorva</td>
    </tr>

答案 4 :(得分:3)

这似乎是一个非常基本的错误:每次循环,你都在设置值。只需在循环外移动初始集:

var rowColor = "D9E6C4";
@for (int i = 1; i <= 10; i++)
{
    <tr style="background-color:@rowColor;" >
        <td>apoorva</td>
    </tr>
    if (@rowColor.Equals("#ffffff"))
    {
        rowColor = "#D9E6C4";
    }
    else
    {
        rowColor = "#ffffff";
    }
}

编辑:@ jcreamer898建议使用i%2比检查颜色值更好。

答案 5 :(得分:3)

在你的风格中使用css

tr:nth-​​child(偶数){background:#CCC}
tr:nth-​​child(odd){background:#FFF}

答案 6 :(得分:2)

<html>
    <head>
        <title>Example Title</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('tr:even').addClass('alt-row-class');
            });
        </script>
    </head>
    <body>...</body>
</html>

然后使用标准css将样式应用于该类:

.alt-row-class { background-color: green; }

引用此前一篇文章 - https://stackoverflow.com/posts/663122/edit

答案 7 :(得分:1)

@{

 string rowColor = "#D9E6C4";   
 <table>
@for (int i = 1; i <= 10; i++)
{
        <tr style="background-color:@rowColor;" >
            <td>apoorva</td>
        </tr>
       rowColor = rowColor == "#D9E6C4" ? "#FFFFFF" : "#D9E6C4";
}
</table>
}