2010-09-21 45 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

相關問題