如何在数据库更改后刷新JSF中的ajax调用?

时间:2014-05-14 12:50:30

标签: ajax jsf

我有一个使用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>

1 个答案:

答案 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)