2010-12-15 27 views
1

私はWicketのPagingNavigatorに問題があり、なぜ私はそれを持っているのか分かりません。ここで、私はHTMLファイル内のデータビューPagingNavigatorでURL​​が生成されないのはなぜですか?

dataView = new DataView("pageableTicketsList", provider){ 
    protected void populateItem(final Item item) { 
     //Somes codes here 
    }; 
navigator = new PagingNavigator("navigator", dataView); 
dataView.setItemsPerPage(30); 
addOrReplace(dataView); 
addOrReplace(navigator); 

でPagingNavigatorを使用する事たかったが、私は単に持っている:

<wicket:enclosure child="navigator">  
<div class="navigator"> 
     <span wicket:id="navigator" ></span> 
    </div>  
</wicket:enclosure> 

私はウェブブラウザでテストし、実際には、私が持っていますページ数は、として示される:

< < < 1 2 3 4 5 6 7 8 9 10> >>

それらのいずれかがクリック可能です。

私は、URLが正しく、このように生成されていないことをFirebugで見た:

<a href="?wicket:interface=:13:mypage:navigator:navigation:0:pageLink:4:ILinkListener::"><span>1</span> 
</a> 

代わりに、私はちょうど私が何をやっている、私はそれを得ることはありません

<span>1</span> 

を抱えています違う ?ここで

は私のプロバイダのコード

public class MyProvider implements IDataProvider { 

    private List<Ticket> ticketsList; 

    public MyProvider(TicketService ticketService // and some paramaters){ 
      ticketsList = ticketService.getListBy(//the parameters); 
    } 

    public Iterator iterator(int first, int count) { 
    return ticketsList.subList(first, first + count).iterator(); 
    } 

    public IModel model(final Object object) { 
      return new LoadableDetachableModel() { 
      @Override 
       protected Object load() { 
       return (Ticket)object; 
      }}; 
    } 

    public int size() { 
    return ticketsList.size(); 
    } 

    public void detach() { 

    } 

    public List<Ticket> getTicketsList() { 
    return ticketsList; 
    } 

    public void setTicketsList(List<ListTicketsExtranetView> ticketsList) { 
    this.ticketsList = ticketsList; 
    } 
} 

正しい値とnavigator.isEnabled()リターンを返すsize()方法真

私の問題が来たところまあ、掘りの一日後、私はついに見つけたです投稿者: 私はWebMarkupContainerを削除すると、私のページに追加されたWebMarkupContainerがあります。PagingNavigatorはうまくいきます。 2人の間には依存関係はありませんが、WebMarkupContainerを使用して、チケットのリストが空であるかどうかを示すメッセージを表示します。 WebMarkupContainerは、PagingNavigatorに影響しますか?

+0

Ajaxを使用していますか?もしそうなら、 'PagingNavigator'をリクエストターゲットに追加しましたか? – gnuf

+0

いいえ、私はAjaxを使用していません – dagofly

+0

WebMarkupContainerについて:コードを見ずには分かりません。もう少し誇りに思うことができますか? – bert

答えて

0

あなたのコードは正しいようです。無効にするものを設定しましたか?

setEnabled(false);

これは、階層の下のコンポーネントに影響します。それで差が出ない場合は、さらにコードを投稿してみてください。

+0

私は 'navigator.setEnabled(false)'を確認しましたが、とにかく 'navigator.setEnabled(true)'を追加しましたが、T_Tは変更されませんでした。 – dagofly

1

IDataProviderを実装しているクラスのコードを投稿できますか? SortableDataProvidersize()メソッドが正しい値を返さない場合は、表示されている動作に遭遇する可能性があります。

関連する問題