Updateから、このようなリピーターを作成することができます:私は1)リストビュー2)を追加すると、新しいリストビューでこれを交換し、別のものを追加した後、いくつかの空のコンポーネントを追加できると思いますそれ以降は空です。それがWicketで達成可能かどうかはわかりません。
いいですね。単純な部分( "Moreボタン")では、RepeatingView、空のWebMarkupContainer、AjaxLink(ページングが許可されていればロジックを追加/リンクが見えるようにする)を保持する新しいPanelを作成するだけです。
ここで、AjaxLinkのonClickはWebMarkupContainerを使用しているパネルと置き換え、ページング情報を追加してAjaxLinkを非表示にします。
私は可能なアプローチを説明するための基本的な例を書いています。
public class MoreRepeaterPanel extends Panel {
public MoreRepeaterPanel(String id, IModel<?> model) {
super(id, model);
}
@Override
protected void onInitialize() {
super.onInitialize();
List<String> stringList = Arrays.asList(new String[] { "0", "1" });
IDataProvider<String> idataProvider = new ListDataProvider(stringList);
DataView<String> dataView = new DataView<String>("dataView", idataProvider) {
@Override
protected void populateItem(Item<String> item) {
item.add(new Label("dataString", item.getModelObject()));
}
};
add(dataView);
final WebMarkupContainer moreContent = new WebMarkupContainer("moreContent", new Model<Serializable>());
moreContent.setOutputMarkupId(true);
add(moreContent);
AjaxLink<Void> moreLink = new AjaxLink<Void>("moreLink") {
@Override
public void onClick(AjaxRequestTarget target) {
WebMarkupContainer replaceMoreContent = new MoreRepeaterPanel(moreContent.getId(), new Model<Serializable>());
moreContent.replaceWith(replaceMoreContent);
this.setVisible(false);
target.add(replaceMoreContent, this);
}
};
moreLink.setOutputMarkupId(true);
add(moreLink);
}
}
を参照してくださいhttp://www.oktech.hu/kb/adding-and-removing-rows([それがモデルにデータを保持_with_行う方法] -wicket-listview-via-ajax)を使用します。 –
私はおそらく、改ページするリピーターの1つから始めて、下/上にスクロールするときにページ区切りトリガーを作成します。 – biziclop