【问题标题】:hide unhide div tag隐藏取消隐藏 div 标签
【发布时间】:2012-11-12 20:34:19
【问题描述】:

以下是javascript代码:

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

这是调用showhide函数的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 style="display: none" id="HiddenDiv">
 Stuff
</div>

基本上,我试图取消隐藏 div 标记中的表格,该表格在第一次呈现网页时未显示。这只是工作了一半,因为当我单击链接时,它会出现一秒钟左右,然后立即消失。我做错了什么??

【问题讨论】:

  • 你发帖后有没有看你的问题?请更正代码的缩进,p:commandLink 已完全隐藏。
  • 是的,我意识到了,只是更正了它。谢谢

标签: html primefaces show-hide


【解决方案1】:

删除ajax="false"。您不需要只刷新给定 div 的整个页面。在您的情况下,当您单击 p:commandLink 时,将显示 div,但由于 ajax="false" 会刷新整个页面 - 这将在初始状态下显示您的 div。

【讨论】:

  • 我真的不能这样做,因为表格也是动态的,取决于点击哪一行,表格必须改变。 实际上在 标记内,它是表格的一部分,因此这些链接实际上驻留在表格的单元格中。每个链接都会相应地更改表格。对不起,我的问题不够清楚。没有 ajax="false" 有没有其他方法可以做到这一点
  • ajax="false" 与 ajax 组件结合绝对不是要走的路。 ajax="false" 重新加载你的整个页面,没有动态更新,这不是你需要的。您也可以通过 commandLink 刷新表格,使用 update="your_table_id"
  • 虽然我给出了正确的地址,但它给出了以下错误,找不到从“j_idt18:mainTable:0:tableUpdater”引用的标识符为“HiddenDiv.subForm.trainTable”的组件。
  • 您的update 目标是否正确?确保它还包括包含您的 dataTable 的表单 ID(除非它有 prependId=false),例如 update=":formAroundTheTable:yourTableId"
  • 是的,表单 id 是错误中的子表单,而 HiddenDiv id 是表单周围的标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
相关资源
最近更新 更多