JavaScript在View MVC4中不起作用

时间:2015-04-20 07:25:55

标签: javascript asp.net-mvc-4

我尝试通过更改行的背景颜色来对id = 2的行进行高行处理。我在View中使用了JavaScript,但在运行代码后它确实发生了任何变化。这是我的代码。

<table class="GoalDistribution">
@{var i = 0;}
@foreach (var item in Model) {

    <tr id = "@i">
        <td>
            @Html.ActionLink(item.ORDER_NO, "MKP_003", "MKP_003", new { id = item.ORDER_NO }, new { })
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.MODEL)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PJNO)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DELIVERY_DESTINATION)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PRODUCT_START_DATE)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FINISH_FLAG)
        </td>

    </tr>
    i++;
    if (item.PJNO == "100") { 
        <script type="text/javascript">
            $(".GoalDistribution #@(i)").css("background","yellow")
             </script>
    };
}
</table>

当我调试时,数据加载成功。 顺便说一下:这是完成这项工作的最佳方式吗?我可以在控制器中处理它吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

你可以用这种方式做到这一点。只需在tr时向i=1添加一个班级。写你的笔记。

 i++;
 @if(i == 2)
 {
   <tr class="bgYellow">
 }else
 {
   <tr>
 }
        <td>
            @Html.ActionLink(item.ORDER_NO, "MKP_003", "MKP_003", new { id = item.ORDER_NO }, new { })
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.MODEL)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PJNO)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DELIVERY_DESTINATION)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PRODUCT_START_DATE)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FINISH_FLAG)
        </td>

    </tr>

并使用此脚本

<script>
    $(documet).ready(function(){
        $(".GoalDistribution).find('.bgYellow').css("background","yellow")
    });
    </script>

注意:ID不应以数字开头。在页面底部或顶部写下此脚本。