0

注意していただきありがとうございます。解決できない奇妙な問題があります。mongoDB のコンテンツでマップされたウィケットを使用して DataTable を作成しました。また、Tomcat7 と Eclipse を使用しています。

ただし、並べ替える列を選択するたびに、データ プロバイダーの iterator メソッドの getSort() メソッドは、常にデフォルト値と同じ値を返します。

public SortableGalaxyDataProvider() {

    setSort("name", SortOrder.ASCENDING);
}

@Override
public Iterator<? extends Galaxy> iterator(long first, long count) {

    SortParam<String> sort = getSort(); //is always the same

私のページの初期化はこのように行われます

[編集] インジェクションにSpringを使用しているため、GalaxyTableページに持っています。

@Inject
SortableGalaxyDataProvider galaxyProvider;

public GalaxyTable() {

    List<IColumn<Galaxy, String>> columns = new ArrayList<IColumn<Galaxy, String>>();

    columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Name"),"name","name"));
    columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Type"),"type","type"));
    columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Ancestors"),"ancestors","ancestors"));
    columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Radius"),"radius","radius"));


    add(new DefaultDataTable<Galaxy, String>("galaxies", columns, galaxyProvider, 10));
}

テーブルに使用されるhtml行は次のとおりです

<wicket:extend>
<table cellspacing="0" wicket:id="galaxies">[table]</table>
</wicket:extend>

多くの例を探しましたが、誰も同じ問題を抱えているようには見えません。最初の表示は正常で、コンテンツを移動できますが、並べ替え状態が変化しないため、並べ替えられません。

どんな手掛かり ?

ありがとう

4

2 に答える 2

1

あなたの問題は、SpringBean の使用によって引き起こされる可能性があると思います。仕組みとしては、自動生成されたプロキシがインジェクション ポイントに配置されていると思います。したがって、Wicket がイントロスペクションを使用してソート状態を設定しようとすると、プロキシで実行されます (または実行に失敗します)。発生する可能性のある別のことは、Spring が 2 つの ajax リクエスト間で GalaxyProvider Bean を再作成し、ソート状態も失われることです。

私はあなたのコードでインジェクションを取り除き、それが何をするかを見ようとします.

于 2013-04-10T06:53:21.107 に答える