0

Primefacesのコマンドボタンとデータテーブルで問題が発生しています。データテーブル内に2つのボタンがあります。datatableが最初に読み込まれ、次にボタンアクションが呼び出されるたびにボタンをクリックすると。ボタンがクリックされたときにデータテーブルが読み込まれないようにしたいだけです。

 <p:dataTable id="alphaTable" var="cs" binding="#{challengeSetBean.alphaChallengeSetTable}"
                        value="#{challengeSetBean.challengeSet}" styleClass="myTable"
                        style="list-style-type:none;width:600px;border:1px;" >

                <p:column id="col" style="width:20px;font-size:12px;padding-left:7px;padding-bottom:7px;padding-top:7px;">
                  ..................
                                      ................      
                </p:column>

                <p:column  style="width:28px;font-size:9px;padding-left:7px;padding-bottom:7px;padding-top:7px;">

                        <p:commandButton value="#{msg.updateAccount_reset}" action="#{challengeSetBean.editAnswer()}" immediate="true" rendered="#{!cs.editMode}" process="@this" update="col" >
                        </p:commandButton>
                        <p:commandButton value="#{msg.common_save}" action="#{challengeSetBean.saveAnswers()}" rendered="#{cs.editMode}" ajax="true" immediate="true" update="@form"/>
                        <p:commandButton value="#{msg.cancel}" action="#{challengeSetBean.cancelAnswer()}" rendered="#{cs.editMode}" ajax="true" immediate="true" update="@form"/>
                        <p:commandButton value="#{msg.common_delete}" action="#{challengeSetBean.deleteAnswer()}" rendered="#{!cs.editMode}"  immediate="true" update="@form"/>

            </p:column>
    </p:dataTable>   
4

1 に答える 1

1

Bean をビュー スコープに配置して、最初の GET 要求で 1 回だけインスタンス化され、その後のポストバックで再利用されるようにします。鶏卵 JSF 問題 1492 が原因でビュー スコープ Bean が再作成されないように、bindingから属性を削除します。これで、Bean の (ポスト) コンストラクターに をロードするだけです。以降のポストバックでは呼び出されません。<p:dataTable>challengeSet

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

于 2012-11-30T12:07:49.547 に答える