2010-09-21 49 views
0

我在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有效页面。

我该如何做到这一点?

+0

你用JQuery的CSS属性显示:块吗? – svk 2010-09-21 11:24:38

回答

0

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

,如果你写

.editRows { 
    display:none; 
} 
在CSS文件

,jQuery的作品.show()

,或者你可以做

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

嘿,谢谢,这实际上工作,但如果我有内联风格(我到现在为止)它没有.. – mare 2010-09-21 11:59:53

1

要具有优美的降解,以及,你可以用通过jQuery做隐藏坚持,只是给编辑<tr>行类,例如<tr class="edit">然后隐藏所有那些在使用jQuery一次的表格外,像这样:

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

这种方法,而不是隐藏它们赶走CSS蝙蝠是更友好的那些JS禁用,如果你可能有一个像这样的用户的观众,采取这种方式。

+0

隐藏他们与jQuery唯一的缺点是如果你有一个大表,用户将看到两个在文档加载时显示和编辑行。隐藏在CSS中会立即隐藏它(当CSS文件被缓存时,通常情况下是这样) – Stefanvds 2010-09-21 11:31:24

+0

@Stefanvds - 如果这是一个问题,您也可以将脚本不粘贴在表格后面的'document.ready'中。 – 2010-09-21 11:40:39

+0

你是什么意思?那看起来怎么样? – Stefanvds 2010-09-21 11:45:05

相关问题