0

Primefaces3.2でJSF2.1のMojarra実装を使用しています。

私の問題はおおよそ次のようになります。

<p:dialog id="someDialog">
  ..
  <h:form id="dialogForm">        
    <p:commandLink action=".."update=":someForm:someUIRepeat:someDataTable:someInputTextArea"/> 
  </h:form>
</p:dialog>


<h:form id="someForm">
  <ui:repeat id="someUIRepeat" value=".." ..>
    <p:dataTable id="someDataTable" value=.. >

      <p:column>
        <p:inputTextarea id="someInputTextarea" value=../>
      <p:column>

     .. here go other columns
  <ui:repeat>
</h:form>

問題は、ダイアログでcommandLinkをクリックしても、inputTextareaが更新されないことです。ただし、これをcommandLinkの更新で記述した場合:update = ":someForm:someUIRepeat:someDataTable、:someForm:someUIRepeat:someDataTable:someInputTextArea"

次に、dataTable全体が更新され、inputTextareaも更新されますが、ダイアログのcommandLinkをクリックすると、他の列にあるフィールドの値が消去されます。

dataTableをui:repeat内に配置する理由は、dataTableを1つのコレクションの各行にバインドする必要があり、問題とは関係がないと思うためです。

この問題を解決する方法はありますか?

前もって感謝します、

ヌルジャン。

4

1 に答える 1

1

始めにこれを試してください

ダイアログ内に追加onclick="jQuery('#someForm:someButton').click();"(非表示のボタンの正確なIDを確認)<p:commandLink

に設定updateするupdate=":someForm:someUIRepeat:someDataTable"

と追加

<h:commandButton id="someButton" style="display:none">
    <f:ajax execute="@form"></f:ajax>
</h:commandButton>  

<h:form id="someForm">

説明:非表示のボタンの目的は、フォームをサーバーに実行(値を送信)して、呼び出しupdateたときにフィールドが消去されないようにすることです。

于 2012-04-10T10:28:55.350 に答える