我正在使用richFaces - rich:dataTable。我需要删除一些行,然后在新行(在广告之后)显示几秒钟的通知,然后它(带通知的行)将消失。
在 JSF 中,我无法为我的表提供唯一 ID 或名称,因此我不知道如何在 DOM 中找到它。也许那时我可以添加一些 jQuery 行代码。
正如我所说,您可以执行以下操作:
<h:form id="myForm">
<h:dataTable id="dtMyData" value="#{bean.lstData}" var="data">
<!-- column definitions -->
</h:dataTable>
</h:form>
呈现的 HTML 就像
<form id="myForm">
<table id="myForm:dtMyData">
<!-- rows auto generated -->
</table>
</form>
你可以使用最简单的 JS 在你的 DOM 中找到它
document.getElementById('myForm:dtMyData')
此外,您可以使用<rich:dataTable>
标签组件代替,<h:dataTable>
不会有任何问题。
您可以使用 JavaScript/jQuery 自己“删除”行,或者仅通过删除列表中的项目并使用<a4j:commandButton render="dtMyData">
(而不是您可以使用的命令按钮<a4j:commandLink>
)重新呈现数据表。
要在触发 ajax 操作后向用户显示消息,可以使用以下 Richfaces 代码:
<a4j:status onstop="Richfaces.showModalPanel('mdpMessage')" />
<rich:modalPanel id="mdpMessage" resizeable="false" zindex="5000"
minHeight="30" minWidth="10" height="70" width="150">
<f:facet name="header">
<h:outputText value="Operation Results" />
</f:facet>
<h:outputText value="Messages" />
<!-- you can add your h:messages here -->
<a4j:commandButton value="Close"
onclick="Richfaces.hideModalPanel('mdpMessage')" />
</rich:modalPanel>