我正在使用 JSF 和 PrimeFaces 来申请大学作业。我正在努力使某些工作正常进行。我正在使用 PrimeFaces,并且我有一个包含 5 个选项卡的选项卡视图。在其中一个选项卡中,我有一个数据表,它有几行和几列。这一切都很好,但问题是我想提交表单而不重新呈现(整个页面)。The thing is, every column in the dataTable has a selectBooleanCheckbox, and when that checkbox is selected, a button should disappear. 如果未选中,则应显示该按钮。这适用于 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>