2016-05-24 20 views
1

私はアイテムのリストを実装するためにウィッケットRepeatingViewを使用しています。次のようにHTMLは次のとおりです。Wicket RepeatingView:リストが空の場合はプレースホルダーを削除してください

<ul> 
    <li wicket:id="listItemFoo"> 
     ...content... 
    </li> 
</ul> 

そして、私はJavaのバックエンドで:

RepeatingView listFoo = new RepeatingView("listItemFoo"); 
//put items inside listFoo 
addOrReplace(listFoo); 

これはcorretly動作しますが、それは一つの問題があります。私のアプリケーションには、リストに追加する項目がない場合があります。その場合、私はリピータに何も出力しないようにしたいと思います。しかし、これは当てはまりません。空のリピーターでも、空の場合は空の<li></li>が出力されます。 ページに空白の箇条書きを表示するため、これは面倒です。これを避ける正しい方法は何ですか? (わかりやすいかも知れませんが、おそらく伝えられるように私はウィッケットにはとても新しいです)

答えて

3

行います:HTMLで

WebMarkupContainer container = new WebMarkupContainer("listItemFooContainer"); 
RepeatingView listFoo = new RepeatingView("listItemFoo"); 
// add items here 
container.add(listFoo); 
if (yourlist.isEmpty()) { 
    container.setVisible(false); 
} 

あなたが行うことができます

<ul> 
    <wicket:container wicket:id="listItemFoo"> 
     <li> 
      ...content... 
     </li> 
    </wicket:container>       
</ul> 

この方法は、リストが空です。コンテナは生成されません。 ed。

1

RepeatingViewをコンテナに追加して、リストが空のときに非表示にすることができます。

<ul wicket:id="listItemFooContainer"> 
    <li wicket:id="listItemFoo"> 
    ... 

するか、私はこのような問題解決この

<div wicket:id="listItemFooContainer"> 
<ul> 
    <li wicket:id="listItemFoo"> 
    ... 
+1

Upvoted、私は私が使用して終了迅速な方法を発見したが、(私自身の答えを参照) –

+0

ます。また 'view.setVisible(CollectionUtils.isNotEmpty(リスト))を行うことができます'あなたは右のマーティン・グラムだ –

+0

が、これは、リストが空でない場合に常に表示するように設定していることを意味します。これは、他の場所に見えないようにすることができます。 – Martin

関連する問題