7
<h:form id="formId">
   <p:wizard id="wizardId">
      <p:tab id="tabId">
         <p:dataTable id="tableId">
           <p:column>
             <h:commandLink value="remove" update=""/>
           </p:column>
         </p:dataTable>
      </p:tab>
   </p:wizard>
</h:form>

<p:dataTable>フォーム全体なしでのみ更新する必要があります。@form、、を使ってみましたが@parent:formId:wizardId:tabId:tableIdどれも思い通りに動作していません。私が使用するとき@form、それは私がする必要のない検証をチェックしています。

どうすればこれを達成できますか?

4

1 に答える 1

9

まず第一に、これは属性をまったく<h:commandLink>サポートしていないという理由だけで、実際には決して機能しません。updateおそらくあなたは実際に使うつもりでした<p:commandLink>か?

<h:commandLink>存在を修正したら<p:commandLink>、次の答えに進んでください:ajax更新/レンダリング用のコンポーネントのクライアントIDを見つける方法は?JSF ajaxでコンポーネントを参照する方法を学習するために、「bar」から参照される式「foo」のコンポーネントが見つかりません。

その答えを読んだ後、データテーブルが。で識別されるこの特定のコードスニペットにあることがわかりました:formId:tableId。したがって、すべてを含めて、次のことを行う必要があります。

<p:commandLink value="remove" update=":formId:tableId" />

<p:dataTable>PrimeFaces 3.3では、特定の複雑なUIコンポジションのajax更新にバグがあることに注意してください。これはPrimeFaces3.4で修正されています。まさにこの問題が発生し、PrimeFaces 3.4にアップグレードできない場合は、テーブルをいくつかでラップしてから、代わり<h:panelGroup id="tablePanelId">に使用する必要があります。update=":formId:tablePanelId"

于 2012-09-20T16:48:16.470 に答える