在这里,您会看到一个 wicket 的工作示例DropDownChoice
,但这不是我想要的。下拉选择的返回值应该是与该值匹配的整数。下拉选择的返回值为:
returnedLabel=123 (String)
returnedDDCValue=LabelValue [label=TestB, value=3] (LabelValue)
对于生产returnedDDCValue
应该是一个整数,用(整数)3填充。我认为ddc内部必须进行转换。我试过了IChoiceRenderer
,但没有成功。请帮助:)
干杯
克里斯
public class DDCTest extends Panel {
private List<LabelValue> list4ddc;
public DDCTest(String id) {
super(id);
Result result = new Result();
final FeedbackPanel feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
add(feedback);
this.list4ddc = new ArrayList<LabelValue>();
this.list4ddc.add(new LabelValue("TestA", 1));
this.list4ddc.add(new LabelValue("TestB", 3));
this.list4ddc.add(new LabelValue("TestC", 5));
this.list4ddc.add(new LabelValue("TestD", 7));
Form form = new Form("form");
add(form);
form.add(new TextField<String>("returnedLabel", new PropertyModel<String>(result,"returnedLabel")));
form.add( new DropDownChoice("returnedDDCValue", new PropertyModel(result,"returnedDDCValue"), Model.of(list4ddc), new ChoiceRenderer("label", "value")));
form.add(new AjaxButton("submit", form) {
@Override
protected void onSubmit(AjaxRequestTarget target) {
info("["+result.toString()+"]");
target.add(feedback);
}
});
}
public class Result implements Serializable {
private String returnedLabel;
private String returnedDDCValue;
public Result() {
super();
this.returnedLabel = "";
this.returnedDDCValue = null;
}
[ ... Getters and setters ... ]
}
public class LabelValue implements Serializable {
private String label;
private Integer value;
public LabelValue(String label, Integer value) {
super();
this.label = label;
this.value = value;
}
[ ... Getters and setters ... ]
}
}