私は JSF と PrimeFaces を使用して、大学の課題としてアプリケーションを作成しています。私は何かを機能させるのに苦労しています。私は PrimeFaces を使用しており、5 つのタブを含むタブビューがあります。これらのタブの 1 つに、複数の行と列を持つ dataTable があります。これはすべて正常に機能しますが、(ページ全体) を再レンダリングせずにフォームを送信したいという問題があります。問題は、dataTable のすべての列に selectBooleanCheckbox があり、そのチェックボックスが選択されると、ボタンが消えるはずです。選択されていない場合は、ボタンが表示されます。これは onchange="this.form.submit()" または onclick="this.form.submit()" で問題なく動作しますが、アプリケーション全体が更新され、以前のタブではなく最初のタブが選択されますで。だから私は' プログラム全体を更新することなく、いくつかのものを送信して再レンダリングできるソリューションを探しています。これは私のコードです:
<body>
<h:form id="customerForm">
<p:dataTable id="customerlist" var="c" value="#{customerBean.customerList}">
<p:column>
<f:facet name="header">Select</f:facet>
<center>
<p:selectBooleanCheckbox value="#{c.selected}" onchange="this.form.submit()"/>
</center>
</p:column>
</p:dataTable>
<h:commandButton id="testtest" value="test" rendered="#{customerBean.numberSelected() == 0}"/>
</h:form>
</body>
簡単にするために、ほとんどの列を削除しました。これに対する解決策は何ですか?ajaxを使ってみましたが、うまくいきませんでした
<p:selectBooleanCheckbox value="#{c.selected}">
<f:ajax event="click" execute="@form" render="@none"/>
</p:selectBooleanCheckbox>