刷新后如何刷新div并更改div css类?

时间:2015-01-19 12:20:48

标签: ajax jsf

以下是我的代码:

      <c:forEach items="#{myBean.contractList}" var="contract">
         <tr>
            <td>#{contract.title}</td>
            <td>#{contract.terms}</td>
            <td> 
                 <h:form>
                 <h:commandLink> 
                   <p:ajax event="click" update=":panelID" listener="#{bean.selectProject(contractID)}"/>
                 </h:commandLink> 
                 </h:form>
            </td>
         </tr>
      </c:forEach>

      <h:panelGroup id="panelID">
        <div id="contractDIV" class="closePopup">
           Full Details of particular contract 
        </div>
      </h:panelGroup>

有合同清单,标题,条款,名称和“链接/按钮”。当我单击该链接/按钮时,该特定合同详细信息在另一个div中打开,其中ID为“contractDIV”,数据库和css类名称从“openPopup”更改为“closePopup”。它在JSF中的可能性如何?

3 个答案:

答案 0 :(得分:1)

首先,该链接/按钮必须是JSF组件。其次,该div也应该是JSF组件。从那以后,它非常直接。

<强>更新

event="click"更改为event="action",并使用类似的内容来控制将哪个类应用于div class="#{bean.someBoolean ? 'closePopup' : 'openPopup'}"。您可以在#{bean.someBoolean}方法

中更改#{bean.selectProject()}

答案 1 :(得分:0)

而不是div有outputpanel 考虑为outputpanel生成的Id是 form:refreshPanel

<h:form id="form">
   <c:forEach items="#{myBean.contractList}" var="contract">
     <tr>
        <td>#{contract.title}</td>
        <td>#{contract.terms}</td>
        <td><p:commandLink actionListener="#{bean.method(contract)}"  update=":form:refreshPanel" /></td>
     </tr>
  </c:forEach>
<p:outputPanel styleClass="closePopup" id="form:refreshPanel"> </p:outputPanel>
</h:form>

因此,一旦完成actionListener的处理,内容将被刷新

答案 2 :(得分:0)

您可以使用javascript更改oncomplete的{​​{1}}中的课程。

类似的东西:

p:ajax