我有一个使用ajax请求在我的JSF页面中生成的表。当我删除并输入此表时,我希望刷新ajax调用以显示此条目已被删除。这是我的代码如下。在单击“deleteAccount”命令按钮时,该条目将从数据库中删除,但在我再次单击“searchcontractors”按钮之前,这不会反映在屏幕上。任何帮助表示赞赏。感谢
<h:form id="searchForm">
<div class="white"><H2>View All Contractors</H2></div>
<table>
<tr>
<td>
<div class="myButtonPadding">
<h:commandButton id="searchContractors" class="myButton"
action="#{adminBean.searchAllContractors()}" value="View All">
<f:ajax execute="@form" render=":results" />
</h:commandButton>
</div>
</td>
</tr>
</table>
</h:form>
<table>
<tr>
<td>
<div class="red">
<H2>Search Results</H2>
</div>
<ui:repeat var="a" value="#{adminBean.contractorList}" varStatus="status">
<tr>
<td>
<div class="generaltext5">#{a.businessName}</div>
</td>
<td>
<h:commandButton id="deleteAccount" class="myButton2" value="Delete" action="#{adminBean.deleteAccount(a.id)}">
<f:param name="compId" value="#{a.id}" />
</h:commandButton></td>
</tr>
</ui:repeat>
</td>
</tr>
</table>
答案 0 :(得分:0)
在按钮上使用<f:ajax>
标记。
<h:commandButton id="deleteAccount" class="myButton2" value="Delete" type="button" >
<f:ajax event="click" listener="#{adminBean.deleteAccount(a.id)}" render=":searchForm"/>
</h:commandButton>
这将启动ajax调用并更新标识为searchForm
的整个表单,但如果您愿意,则只能更新表。为了将来证明,如果您想从下表中提交任何提交,请确保将其包含在h:form
标记中。 BTW。为什么你通过
<f:param name="compId" value="#{a.id}" />
如果您已经使用方法调用进行了操作? (adminBean.deleteAccount(a.id)
)