2

rich:dataTableの読み込み中に読み込みメッセージを表示する方法を見つけた人はいますか?

DataModelをサポートするロード操作に時間がかかると、リクエストに時間がかかることがわかりました。このロード中にユーザーにメッセージを表示する効果的な方法はありますか?

Richfaces3.3.3を使用しています。

4

1 に答える 1

2

を使用できますa4j:status。詳細については、Exadel livedemoを参照してください:http://livedemo.exadel.com/richfaces-demo/richfaces/status.jsf?c = status&tab = usage

データテーブルの相互作用についてのみメッセージを表示する必要がある場合は、次の方法で領域を制限できa4j:statusますa4j:region

<a4j:region>
    <a4j:status startText="Loading. Please wait..." >

    <rich:dataTable .../>
</a4j:region>

更新: 一部のコンテンツの遅延読み込みには、次のアプローチを使用できます。フェイスレット(またはコンポーネント)を作成します。

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
            xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:f="http://java.sun.com/jsf/core"
            xmlns:c="http://java.sun.com/jstl/core"
            xmlns:a4j="http://richfaces.org/a4j"
            xmlns:rich="http://richfaces.org/rich">
<h:panelGroup id="lazyP#{id}" layout="block">
    <ui:fragment rendered="#{lazy.isRendered(id)}">
        <ui:insert name="lazy"/>
    </ui:fragment>
    <ui:fragment rendered="#{not lazy.isRendered(id)}">

        <h:outputText value="Loading..."/>

        <a4j:region>
            <a4j:jsFunction name="loadData#{id}" reRender="lazyP#{id}"
                            action="#{lazy.release(id)}"
                            limitToList="true"
                            ajaxSingle="true" eventsQueue="lazyQueue"/>
        </a4j:region>
        <script type="text/javascript">
            jQuery(document).ready(function() {
                loadData#{id}();
            });
        </script>
    </ui:fragment>
</h:panelGroup>

lazyレンダリングされたものとレンダリングされなかったもののマップを格納するBean(私はページスコープを使用)の参照です(releaseメソッドはアイテムをレンダリング済みとしてマークします)。

次に、次のように使用できます。

<ui:decorate template="lazyLoad.xhtml">
     <ui:param name="id" value="someId"/>
     <ui:define name="lazy">
           <rich:dataTable ... />
     </ui:define>
</ui:decorate>
于 2011-10-02T13:07:50.953 に答える