2011-12-21 2 views
4

Мне нужно разработать таблицу с чередующимися цветами строк. Ниже приведен код, но он не работает. Может быть, проблема с синтаксисом для MVC. Пожалуйста, предложите.чередующийся ряд цвет 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"; 
     } 
} 
+0

Знаете ли вы jquery или можете использовать скрипт java ..? – MethodMan

+6

Почему бы вам просто не использовать css для этого? – slinzerthegod

+0

Возможный дубликат [Как создать полосы зебры на html-таблице без использования генерации javascript и даже/нечетных классов?] (Http://stackoverflow.com/questions/2765510/how-to-create-zebra-stripes-on-html -table-without-use-javascript-and-even-odd) –

ответ

4

Принять декларацию 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"; 
    } 
} 
4

Вы должны использовать:

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

альтернативу использовать моды, чтобы выбрать цвет:

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

10

Try ...

@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> 
} 
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 лучше, чем проверка значений цвета.

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> 
} 
2

использование CSS в вашем стиле

тр: п-й ребенок (даже) {фон: #ccc}
тр: п-й ребенок (нечетные) {фон: #fff}

Смежные вопросы