1

Primefacesでプログラムでチェックボックスを有効/無効にするにはどうすればよいか疑問です。可能であれば、Javaコードで列チェックボックスの有効化/無効化ステータスを制御したいと思います。誰かが私を助けることができますか?

これは私のコードです:

<p:dataTable id="table" var="some" value="#{someManager.someDataModel}"  
                     selection="#{someManager.chooseSomethings}">

            <p:column binding="#{someManager.columnCheckBox}" selectionMode="multiple"/>
            <p:column>
                <h:outputText value="#{some.nameOfTheSomething}"/>
            </p:column> 
        </p:dataTable> 

データテーブルのチェックボックスをクリックすると、選択したデータが下のデータテーブルに表示されます。

<p:dataList id="selectedDataList"
         value="#{someManager.chooseSomethings}" 
         var="c" rowIndexVar="i">
           <h:outputText id="choseSomeElement" value="#{c.nameOfTheSomething}"/>
           <p:commandLink value="x" process="@this" update=":form:selectedDataList" actionListener="#{userManager.remove}"/>
</p:dataList>

この選択リストでは、「X」コマンドリンクをクリックして要素を削除できます。このcommandLinkは、chooseSomethingsリストからデータを削除します。それが起こったら、データテーブルの対応する要素のチェックボックスを再び選択解除(無効化)したいと思います(初期状態を復元します)。

出来ますか?ありがとう。

4

1 に答える 1

1

Primefacesは両方のリストを同期しました。ChooseSomethingsからデータを削除すると、データテーブルにチェックボックスがオフになっていることが表示されます。この場合、dataListのupdate属性にdatatableのIDを入れるだけです。このような:

<p:dataTable id="table" var="some" value="#{someManager.someDataModel}"  
                 selection="#{someManager.chooseSomethings}">

        <p:column binding="#{someManager.columnCheckBox}" selectionMode="multiple"/>
        <p:column>
            <h:outputText value="#{some.nameOfTheSomething}"/>
        </p:column> 
    </p:dataTable> 

<p:dataList id="selectedDataList"
     value="#{someManager.chooseSomethings}" 
     var="c" rowIndexVar="i">
       <h:outputText id="choseSomeElement" value="#{c.nameOfTheSomething}"/>
       <p:commandLink value="x" process="@this" update=":form:selectedDataList,:form:table" actionListener="#{userManager.remove}"/>

于 2013-03-25T21:57:15.787 に答える