1

使用这个元素

<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>

我想渲染一个

<p:column id="colEmp" rendered="#{mbcompletado.empaque}"> .... </p:column>

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

使用 primefaces 和 glassfish 在此先感谢

4

1 回答 1

1

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

假设父组件是 a <p:dataTable>

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

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

<p:ajax update="tableId" />

也可以看看:

于 2012-11-14T21:07:12.270 回答