如何使用jquery在asp.net mvc中交替表行颜色?

gre*_*ade 4 jquery

可能是一个愚蠢的问题,但我是MVC和jQuery的新手.我想交替我的表格的行颜色,我已经决定我将使用jQuery来做它.我知道我可以写一个扩展方法(http://haacked.com/archive/2008/08/07/aspnetmvc_cycle.aspx)等,但在阅读SH对http://haacked.com/archive上文章的评论之后/2008/05/03/code-based-repeater-for-asp.net-mvc.aspx我选择了jQuery作为我想要实现的解决方案.

我想实现http://www.packtpub.com/article/jquery-table-manipulation-part2中描述的方法,但我还没弄清楚在哪里放置初始jQuery调用(例如:$(document).ready (function(){...});

就像我说的,我是jQuery的新手......

Ken*_*ing 19

您可以通过在表的所有偶数行上设置类来完成此操作.

<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>
Run Code Online (Sandbox Code Playgroud)

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

.alt-row-class { background-color: green; }
Run Code Online (Sandbox Code Playgroud)

一个评论者正确地指出,你可能希望与选择(上所扮演tr:even)得到你想要相对于结果tbody,theadtfoot元素.


tva*_*son 11

请注意,如果您使用jQuery并且用户已关闭javascript,则您的UI将无法按照您希望的方式进行样式设置.您可能需要考虑在视图代码本身中为样式分配CSS类.

   @{ var alternating = false;
      foreach (var row in Model) {
          <tr class='@(alternating ? "alternating-row" : "normal-row")'>
          ...
          alternating = !alternating;
   }     
Run Code Online (Sandbox Code Playgroud)