0

我正在使用richFaces - rich:dataTable。我需要删除一些行,然后在新行(在广告之后)显示几秒钟的通知,然后它(带通知的行)将消失。

在 JSF 中,我无法为我的表提供唯一 ID 或名称,因此我不知道如何在 DOM 中找到它。也许那时我可以添加一些 jQuery 行代码。

4

1 回答 1

0

正如我所说,您可以执行以下操作:

<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>
于 2012-06-12T14:03:25.787 回答