Ajax 如何使用selectBooleanCheckbox提交JSF PrimeFaces表单而不刷新页面?

Ajax 如何使用selectBooleanCheckbox提交JSF PrimeFaces表单而不刷新页面?,ajax,jsf,primefaces,submit,Ajax,Jsf,Primefaces,Submit,我正在使用JSF和PrimeFaces制作一个应用程序作为大学作业。我正在努力使某些东西起作用。我使用PrimeFaces,我有一个包含5个选项卡的选项卡视图。在其中一个选项卡中,我有一个dataTable,它有几行和几列。这一切都很好,但问题是我想提交表单,而不需要重新提交(整个页面)。问题是,dataTable中的每一列都有一个selectBooleanCheckbox,当选中该复选框时,一个按钮应该消失。如果未选中该按钮,则应显示该按钮。这对onchange=“This.form.subm

我正在使用JSF和PrimeFaces制作一个应用程序作为大学作业。我正在努力使某些东西起作用。我使用PrimeFaces,我有一个包含5个选项卡的选项卡视图。在其中一个选项卡中,我有一个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>

您真的需要提交整个表单吗?如果视图被重新渲染已经足够,请尝试更新表单。为此,可以使用primefaces ajax事件

<p:selectBooleanCheckbox value="#{c.selected}">
    <p:ajax update="@form"/>  
</p:selectBooleanCheckbox>


如果这不起作用,请告诉我们“.ajax,不起作用”的确切含义。是否提交了任何POST请求?有什么动作/二传吗?

我不知道你表演的是什么魔法。。。但这确实奏效了。。。我以为我什么都试过了。谢谢!将按钮包装在面板组中并使用
update=“:customerForm:panelGroupId”
会更有效。OP似乎也不想更新整个表。在您的
尝试中,您指定了
render=“@none”
。为什么您希望在ajax请求完成时重新呈现(更新)某些内容?我建议大家先掌握一些基本知识,重点不是重新渲染页面。这只是我在绝望中尝试过的与ajax相关的事情之一。