0
ラジオで1つの問題を解決し、新しいものを取得しました。 私が持っている自分自身の、カスタマーのRADIOGROUPコンポーネント:私は私のラジオグループを置くWicketローカルモデルのラジオ
public class OperationDateRadioGroup extends RadioGroup<OperationDate> {
private LocalDatePicker date;
private LocalDatePicker from;
private LocalDatePicker to;
public OperationDateRadioGroup(String id, IModel<OperationDate> model) {
super(id, model);
}
@Override
protected void onInitialize() {
super.onInitialize();
operationDateType = getModelObject().getOperationDateType();
date = new LocalDatePicker("date", new CompoundPropertyModel<>(getModel()).bind("date")) {
@Override
protected void onConfigure() {
super.onConfigure();
setEnabled(OperationDateRadioGroup.this.getModelObject().getOperationDateType() == OperationDateType.DATE);
}
};
from = new LocalDatePicker("interval.from", new CompoundPropertyModel<>(getModel()).bind("interval.from")) {
@Override
protected void onConfigure() {
super.onConfigure();
setEnabled(OperationDateRadioGroup.this.getModelObject().getOperationDateType() == OperationDateType.INTERVAL);
}
};
to = new LocalDatePicker("interval.to", new CompoundPropertyModel<>(getModel()).bind("interval.to")) {
@Override
protected void onConfigure() {
super.onConfigure();
setEnabled(OperationDateRadioGroup.this.getModelObject().getOperationDateType() == OperationDateType.INTERVAL);
}
};
OperationDate operationDate = new OperationDate();
operationDate.setOperationDateType(OperationDateType.DATE);
Radio dateType = new Radio<>("dateType", Model.of(operationDate));
OperationDate operationInterval = new OperationDate();
operationInterval.setOperationDateType(OperationDateType.INTERVAL);
Radio intervalType = new Radio<>("intervalType", Model.of(operationInterval));
dateType.add(new AjaxFormSubmitBehavior("onchange") {
private static final long serialVersionUID = -6001312248222404593L;
@Override
protected void onEvent(AjaxRequestTarget ajaxRequestTarget) {
ajaxRequestTarget.add(date, from, to);
}
});
intervalType.add(new AjaxEventBehavior("onchange") {
private static final long serialVersionUID = -6001312248222404593L;
@Override
protected void onEvent(AjaxRequestTarget ajaxRequestTarget) {
ajaxRequestTarget.add(date, from, to);
}
});
add(dateType, intervalType);
add(date.setOutputMarkupId(true));
add(from.setOutputMarkupId(true));
add(to.setOutputMarkupId(true));
add(new AjaxFormChoiceComponentUpdatingBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) {
}
});
getForm().add(new DateIntervalFormValidator(this, date, from, to));
}
}
そしてFormComponentPanel
public class OperationDatePanel extends FormComponentPanel<OperationDate> {
....
@Override
protected void onInitialize() {
super.onInitialize();
add(new OperationDateRadioGroup("operationDate", getModel()));
}
}
問題:私は、内側(RADIOGROUP)成分と外側を変更RADIOGROUPでラジオを選択していたときに(ページ)モデルでは、ラジオグループモデルのみを変更し、外部モデルを送信する必要があります。
問題はあまり明確ではありません。正確に「内部」とは何か、コードスニペットでは「外側」は何ですか? –
FormComponent内の内部平均モデル、outerはFormComponentモデルを含むページ上のモデルです –
まだ問題はあまり明確ではありません。質問にさらに情報を追加することを検討してください。 –