ColumnToggler が何かは SHOWCASE で確認してください。
PrimeFaces ShowCase
でこれ基本的には、クライアント側だけの制御になります。
なので、初期表示に一部閉じておきたいとかの制御は基本出来ません。*1
が、Stateful Column Toggler | こんな記事が!!
という訳で出来るようになったみたいです。
大事なとこだけ抜粋してみると
<f:facet name="header"> <p:columnToggler datasource="cars" trigger="toggler"> <p:ajax event="toggle" listener="#{dtBasicView.onToggle}" /> </p:columnToggler> </f:facet> <p:column headerText="Id" visible="#{dtBasicView.list[0]}"> <h:outputText value="#{car.id}" /> </p:column>
public void onToggle(ToggleEvent e) { list.set((Integer) e.getData(), e.getVisibility() == Visibility.VISIBLE); }
p:column の visible と p:columnToggler の toggle イベント がポイントですね。
で試そうとしたら、p:column に visible 属性が無い!!
ブログを最後まで読むと 5.1.3/5.2 から追加されたようです。
一般ユーザーはまだお預けですね。。
*1:がっつり JavaScript 書いたらいけるかも...