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 ツリーに存在することが保証されている親コンポーネントを更新する必要があります。

親コンポーネントが であると仮定すると<p:dataTable>

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

update次に、それに応じて属性を変更する必要があります。

<p:ajax update="tableId" />

以下も参照してください。

于 2012-11-14T21:07:12.270 に答える