在表格中隐藏一行并再次显示?

时间:2010-09-21 11:21:34

标签: javascript jquery asp.net-mvc xhtml

我在ASP.NET MVC View页面中使用了foreach循环。对于foreach操作的集合的每个元素,我创建两行 - 一行用于显示,一行用于编辑。我想隐藏编辑行,以后只能根据用户操作显示它。

如果我用display: none隐藏编辑行,那么jQuery的show()方法无法再次重新显示它 - 它不起作用。如果我像这样隐藏它

// I put this inside the foreach loop
<script type="text/javascript">
$("#edititem_" + <%: item.Id %>).hide();
</script>

jQuery的show()函数可以稍后显示,但页面不会验证,因为它位于<tbody>标记内(这是我枚举我的集合并创建<tr>的)

我希望能够按需显示/隐藏编辑行,并且仍然有一个XHTML有效页面。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

要获得优雅的降级,你可以坚持通过jQuery完成隐藏,只需将编辑<tr>行赋予一个类,例如<tr class="edit">然后使用jQuery在表外隐藏所有这些,如下所示:

<script type="text/javascript">
  $(function() {
    $("tr.edit").hide();
  });
</script>

这种方法,而不是使用CSS隐藏它们对于那些禁用JS的人来说更加友好,如果你可能有这样的用户,请采用这种.hide()方法。

答案 1 :(得分:0)

使用CSS文件并将Class添加到编辑行,将另一个类添加到显示行。

如果你写

.editRows {
  display:none;
}

在CSS文件中,jquery的.show()可以正常工作。

或者你可以做到

$(".editRows").hide();