对不起回答这么晚,但我迷失在代码中。我没有写,我仍然从Wicket开始。
我想从头开始了,但我与我似乎无法理解的一个问题难倒...我创建了一个简单的表格:
打开和关闭该模式窗口不是硬的部分,但发送一个值从模态窗口,以便将其插入窗体几乎是不可能的。
我也跟着在互联网上几乎完全教程,我不知道哪里出了问题?
当测试我的代码,这是我得到:
- 我从选择SERIALNUMBER modalWindow,我点击“发送”按钮。
- 模式窗口关闭,但我的表单中的serialNumber字段未更新。
- 我不知道发生了什么,因为当我设置这个serialNumber并在模态窗口中选择另一个时,它的值将消失。
这里是正规页面
serialNumber = new TextField("serialNumber");
modalMateriel = new ModalWindow("modalMateriel");
modalMateriel.setContent(new ModalWindowMateriel(modalMateriel.getContentId()){
public void onSave(AjaxRequestTarget ajaxRequestTarget){
ajaxRequestTarget.addComponent(serialNumber);
modalMateriel.close(ajaxRequestTarget);
}
});
modalMateriel.setInitialWidth(1000);
modalMateriel.setWidthUnit("px");
modalMateriel.setInitialHeight(450);
modalMateriel.setHeightUnit("px");
modalMateriel.setTitle(getString("ManageRMA_modal_materiel_title"));
modalMateriel.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
addOrReplace(modalMateriel);
serialNumber.setEnabled(false);
serialNumber.setOutputMarkupId(true);
form.addOrReplace(serialNumber);
form.addOrReplace(new AjaxLink("showModalMaterielButton") {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget){
ajaxRequestTarget.appendJavascript("Wicket.Window.unloadConfirmation = false;");
modalMateriel.show(ajaxRequestTarget);
}
}.setVisible(true));
这里是一些代码是modalwindow
private String serialNumberRecherche;
public ModalWindowMateriel(String id){
super(id);
Form form = new Form("formMaterielsConsultation");
List<String> list = new ArrayList<String>();
list.add("1");
list.add("11");
list.add("111");
list.add("1111");
list.add("11111");
form.addOrReplace(new DropDownChoice("serialNumberRecherche",new PropertyModel(this,"serialNumberRecherche"),list));
//The submit button which aim is ti upDate "serialNumber" in the formal page
AjaxButton button = new AjaxButton("Envoyer"){
protected void onSubmit(AjaxRequestTarget ajaxRequestTarget, Form form) {
onSave(ajaxRequestTarget);
}
};
form.add(button);
add(form);
}
public abstract void onSave(AjaxRequestTarget ajaxRequestTarget);
public String getSerialNumberRecherche() {
return serialNumberRecherche;
}
public void setSerialNumberRecherche(String serialNumberRecherche) {
this.serialNumberRecherche = serialNumberRecherche;
}
这是很难设想一个解决这个问题,没有看到一些代码。 – 2010-09-23 21:55:03