【问题标题】:Render a p:column with ajax primefaces使用 ajax primefaces 渲染 p:column
【发布时间】:2012-11-14 20:52:17
【问题描述】:

使用这个元素

<p:selectOneRadio id="selempaque" value="#{mbcompletado.empaque}">
    <f:selectItem itemLabel="Si" itemValue="true"/>
    <f:selectItem itemLabel="No" itemValue="false"/>
    <p:ajax update="colEmp"/>
</p:selectOneRadio>

我想渲染一个

&lt;p:column id="colEmp" rendered="#{mbcompletado.empaque}"&gt; .... &lt;/p:column&gt;

但是在我刷新页面之前它不会改变渲染。我想使用 Radio 值来显示或隐藏列。

使用 primefaces 和 glassfish 在此先感谢

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    JS/Ajax 只会更新 已经 存在于 HTML DOM 树中的元素。 JS 基本上首先做一个document.getElementById(clientId) 来获取要更新的元素,然后用从ajax 响应中检索到的新节点替换整个节点。 JS/Ajax 不能神奇地显示/更新从未呈现到 HTML 输出的元素。您基本上需要更新一个父组件,该组件总是呈现,因此保证存在于 HTML DOM 树中。

    假设父组件是&lt;p:dataTable&gt;

    <p:dataTable id="tableId" ...>
    

    那么您需要相应地更改update 属性:

    <p:ajax update="tableId" />
    

    另见:

    【讨论】:

    • 我用了一个panelGrid,只是更新那个元素就解决了问题,谢谢大佬:)
    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 2012-10-08
    • 2011-04-14
    • 2018-04-19
    • 2015-04-25
    • 2016-02-20
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多