値を含むパレットを作成しました。選択リストを更新するためにAjaxFormComponentUpdatingBehaviorを使用してDropDownChoice ddcdomainesを作成しましたが、それを行う方法はわかりません。Wicket palette with dropdownchoice
ここに私のコード:
List<PartnerDomainDTO> domaines = partenaireHelper.allDomains();
ChoiceRenderer choiceRenderer = new ChoiceRenderer("label", "sid");
final Palette palette =
new Palette("partenaires", new PropertyModel(offre, "partenaires"), new Model(
(Serializable) partenairesPossibles), renderer, 10, false) {
private static final long serialVersionUID = 1178320215146881229L;
boolean first = true;
@Override
public Iterator getSelectedChoices() {
if (first) {
first = false;
return partenairesExistants.iterator();
}
return super.getSelectedChoices();
}
};
palette.setOutputMarkupId(true);
palette.setOutputMarkupPlaceholderTag(true);
DropDownChoice ddcdomaines = new DropDownChoice("domaines", new Model(domaines.get(0)), domaines, choiceRenderer);
ddcdomaines.add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
remove(palette);
Palette palette1 =
new Palette(
"partenaires",
new PropertyModel(offre, "partenaires"),
new Model(new ArrayList<Partenaire>()),
renderer,
10,
false);
palette1.setOutputMarkupId(true);
palette1.setOutputMarkupPlaceholderTag(true);
add(palette1);
target.addComponent(palette);
target.addComponent(palette1);
}
});
add(palette);
add(ddcdomaines);
}
ありがとう、私は(dropdownchoiceとパレット)を使用している例のようにしようとしましたが、私は望む結果を得ることができなかった、私もsetVisible(trueまたはfalse)のような単純なアクションを作ろうとしたパレットを隠すが、setVisibleが真のときは何もなかった。それはまだ隠されていた!これについて何か考えてもらえますか? – Mohamed
パレットで 'setOutputMarkupPlaceholderTag(true)'を呼び出しましたか? Ajax呼び出しを使用して再び表示されるすべてのコンポーネントに必要です。 – biziclop
@モハメドあなたのコードの一部を見せて、元の投稿を自由に編集してください。間違っている可能性がある約1.83億ものがあります:) – jbrookover