2010-11-30 11 views
2

h:dataTableまたはrich:dataTableに 'No Data Found'というメッセージを表示するにはどうすればいいですか?テーブルのヘッダーには、名前、ロール番号、クラスというフィールドが表示されます。 UIは、hのデータセクションにヘッダーとデータが見つかりませんでした。dataTableh:dataTableまたはrich:dataTable内にデータが見つかりませんでしたか?

ありがとうございました。

答えて

3

h:dataTableまたはrich:dataTableでは不可能です。 PrimeFacesp:dataTableには、正確にはemptyMessageという属性があります。

あなたの最善の策は、テーブルが空のときにレンダリングされるテーブルの下にメッセージを置くことです。 CSSを使用してテーブルと同じスタイルにして、テーブルの一部に見えるようにすることができます。あなたはとにかくテーブルのフッターを使用していない場合は、それが簡単に、空のメッセージにテーブルの一部を作るために作るために

<h:dataTable value="#{bean.list}"> 
    ... 
</h:dataTable> 
<h:outputText value="Table is empty" rendered="#{empty bean.list}"> 
+0

あなたがデータテーブルのためにレンダリングされた属性を削除した場合、彼は期待して、出力は同じになります!!!!! – mvg

+0

@mvg:良い点。 – BalusC

+0

RF-3.3 'rich:extendedDataTable'には' noDataLabel'があり、RF-4.xにはこの属性を 'rich:dataTable'でも使うことができます。 – mabi

3

だけの提案:

... 
</h:column> 
<f:facet name="footer"> 
    <h:outputText value="Table is empty" styleClass="someStyleClass" rendered="#{empty bean.list}" /> 
</f:facet> 
</h:datatable> 

いくつかのスタイリングはとにかく必要になる場合があります、しかし、私の意見では、あなたのソースコードの中で見栄えが良くなります。

+1

ありがとうございます。それは私のためにうまく動作します。 –

+0

良いアイデア!!!ありがとう – Selva

1

完全に可能です。

function myFunc(){ 
 
    $('#bodyForm\\:assetTrackingTravellingTable').grDataTable({ 
 
    sDom : 'zrtp' 
 
}); 
 
    
 
    }

 
<script type="text/javascript" 
 
\t \t src="#{facesContext.externalContext.requestContextPath}/member/assets/js/jquery.dataTables.js"></script> \t 
 
\t <link rel="stylesheet" type="text/css" 
 
\t \t href="#{facesContext.externalContext.requestContextPath}/member/assets/css/jquery.dataTables.css" /> 
 

 
<rich:dataTable id="assetTrackingTravellingTable" ...

-1
<rich:dataTable value="#{bean.list}" var="var"> 
    <f:facet name="noData"> 
     No data message 
    </f:facet> 
    <rich:column> 
     <f:facet name="header"><h:outputText value="Field A"/></f:facet> 
     <h:outputText value="#{var.fieldA}"/> 
    </rich:column> 
    ... 
</rich:dataTable> 
関連する問題