【发布时间】:2026-02-04 07:50:01
【问题描述】:
我想在单击按钮时提交数据表,但在第一次单击时不会调用该操作。这是我的代码:
<h:panelGrid id="addToThisDepartmentPanel">
<h:outputText value="#{messageDataBean.message}" rendered="#{messageDataBean.isSuccess eq false}" style="color:red" id="addToThisDepartmentMessage"/>
<h:form>
<h:dataTable value="#{systemResultViewUtil.systemUserDetailDataBeansList}" var="departmentdetail" id="addToThisDepartmentDataTable" rendered="#{systemResultViewUtil.systemUserDetailDataBeansList.size() gt 0}">
<h:column>
<f:facet name="header">
Name
</f:facet>
<h:outputText value="#{departmentdetail.name}" style="text-align: left;padding-right: 120px" />
</h:column>
<h:column>
<f:facet name="header">
Current Department
</f:facet>
<h:outputText value="#{departmentdetail.depName}" style="text-align: left;padding-right: 120px" />
</h:column>
<h:column>
<f:facet name="header">
Add To This
</f:facet>
<h:selectBooleanCheckbox value="#{departmentdetail.cheked}" style="text-align: left;padding-right: 120px"/>
</h:column>
</h:dataTable>
<a4j:commandButton oncomplete="if(#{messageDataBean.isSuccess eq true}){ closeAddToThisDepartmentDialog()}" value="Add TO This Department" action="#{departmentServiceBean.addEmployeeToThisDepartment}" id="addToThisDepartmentButton"
render=":addToThisDepartmentMessage :message" execute=":addToThisDepartmentDataTable" />
</h:form>
</h:panelGrid>
问题是第二次点击我的<a4j:commandButton> 动作被调用。但它不会在第一次点击时被调用。
有什么想法吗?
【问题讨论】:
-
为了排除一个和另一个,
<h:panelGrid>是否事先被另一种 ajax 表单重新渲染? -
嗯,我可以假设答案是“是”吗?如果不是这样,我不想浪费时间写答案。
-
BalusC 帮助...我是 JSF 新手
-
对我第一条评论中的问题回答“是”或“否”即可。
-
是的
被另一个 ajax 重新渲染..
标签: jsf jsf-2 richfaces ajax4jsf