2012-11-12 234 views
2

下面是javascript代碼:隱藏取消隱藏div標籤

<script language="JavaScript"> 
    function ShowHide(divId) 
    { 
     if(document.getElementById(divId).style.display == 'none') 
     { 
      document.getElementById(divId).style.display='block'; 
     } 
    } 
</script> 

這是XHTML代碼來調用顯示隱藏功能:

<p:column> 
<p:commandLink onclick="javascript:ShowHide('HiddenDiv');" ajax="false" value="#{rail.trainNo}" action="#yardMaster.populateTrainDetails(rail.trainNo)}" style="font-family:Times New Roman, Times, serif;"></p:commandLink> 
</p:column> 

以上是這是應該取消隱藏鏈接下面的部分:

基本上我試圖取消隱藏div標記中的一個表,當它不顯示時該網頁首次呈現。這只是一半的工作,從某種意義上說,當我點擊鏈接時,它會出現一秒左右,然後立即消失。我究竟做錯了什麼??

+0

發佈後你看了你的問題嗎?請更正代碼的縮進,p:commandLink完全隱藏。 –

+0

亞我意識到,只是糾正它。謝謝 – Galactus

回答

1

刪除ajax="false"。你不需要刷新整個頁面只是給定的div。在你的情況下,當你點擊p:commandLink時,div將被顯示,但從ajax="false"整個頁面被刷新 - 這將顯示你的div在其初始狀態。

+0

我真的不能這樣做,因爲表格也是動態的,這取決於表格必須更改的是哪一行。 實際上是標籤,它是表格的一部分,所以這些鏈接實際上在表格的單元格中重新生成。每個鏈接都會相應地更改表格。對不起,我的問題還不夠清楚。有沒有其他的方式來做到這一點,沒有ajax =「false」 – Galactus

+0

'ajax =「false」'結合ajax組件絕對不是要走的路。 'ajax =「false」'重新加載您的整個頁面,而無需動態更新,這不是您所需要的。你也可以通過commandLink刷新表格,使用'update =「your_table_id」' –

+0

雖然我給出了正確的地址,但它給出了以下錯誤, 找不到具有標識符「HiddenDiv.subForm.trainTable」引用的組件:「j_idt18:mainTable 0:tableUpdater」。 – Galactus