Panel のコンストラクターに ChildPanel を追加しています。Panel が読み込まれると、子パネルは getData() によって返されたデータでレンダリングされます。以下はコードです。
パネル
public Panel(String aId, IModel<String> model)
{
super(aId);
this.model = model;
childPanel = new ChildPanel(MID, LoadableDetachableModel.of(this::getData));
childPanel.setOutputMarkupId(true);
add(childPanel);
}
LambdaAjaxButton button = new LambdaAjaxButton("button",
(_target, _form) -> {
//
});
子パネル
public ChildPanel(String aId, LoadableDetachableModel<String> loadableDetachableModel)
{
super(aId);
childModel = loadableDetachableModel;
component = new WebMarkupContainer(MID_COMPONENT_CONTAINER);
component.setOutputMarkupId(true);
add(component);
}
ボタンをクリックしたときにだけ ChildPanel がレンダリングされるようにしたいと思います。onClick イベントでそのようなことを定義するにはどうすればよいですか? また、初期化時にレンダリングしてはなりません。