Wicket 如何管理包含表单的ModalWindow?
我试图在页面“[MyPage]”中使用modalwindow“[MW]” 在[MyPage]中,有一个表单和一个Wicket 如何管理包含表单的ModalWindow?,wicket,Wicket,我试图在页面“[MyPage]”中使用modalwindow“[MW]” 在[MyPage]中,有一个表单和一个div具有[MW]的wicket id。div不在[MyPage]格式内。 在[MW]中,有一种形式,我可以通过搜索从数据库中检索信息 事实上,我的所有表单都在Firefox和Chrome中运行良好。但在IE中,当我在[MyPage]中提交表单时,它会显示[MW] 我不知道如何解决这个问题,因为我已经在[MyPage]中分离了modalWindow和表单。我尝试过类似onclick=“
div
具有[MW]的wicket id。div
不在[MyPage]格式内。
在[MW]中,有一种形式,我可以通过搜索从数据库中检索信息
事实上,我的所有表单都在Firefox和Chrome中运行良好。但在IE中,当我在[MyPage]中提交表单时,它会显示[MW]
我不知道如何解决这个问题,因为我已经在[MyPage]中分离了modalWindow和表单。我尝试过类似onclick=“formimypage.submit()”的Javascript,但它仍然不起作用。很抱歉这么晚才回答,但我在代码中迷失了方向。不是我写的,我还是从Wicket开始。
我想从头开始,但我被一个我似乎无法理解的问题难住了。。。我创建了一个简单的表单:
- 序列号的文本字段
- 打开modalWindow的按钮
测试代码时,我得到的结果如下:
- 我从modalWindow中选择一个序列号,然后单击“发送”按钮李>
- modalWindow关闭,但我表单中的serialNumber字段未更新
- 我不知道发生了什么,因为当我设置这个序列号并在modalWindow中选择另一个序列号时,它的值消失了
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;
}
私有字符串serialnumbercherche;
公共ModalWindowMaterials(字符串id){
超级(id);
表格=新表格(“表格材料咨询”);
列表=新的ArrayList();
列表。添加(“1”);
列表。添加(“11”);
列表。添加(“111”);
列表。添加(“1111”);
列表。添加(“11111”);
form.addOrReplace(新的下拉选择(“serialNumberRecherche”,新属性模型(“serialNumberRecherche”),列表);
//提交按钮的目标是在正式页面中更新“序列号”
AjaxButton=新的AjaxButton(“特使”){
提交时受保护的无效(AjaxRequestTarget AjaxRequestTarget,表单){
onSave(ajaxRequestTarget);
}
};
表单添加(按钮);
添加(表格);
}
保存上的公共摘要无效(AjaxRequestTarget AjaxRequestTarget);
公共字符串getSerialNumberRecherche(){
返回serialnumberrechercher;
}
public void setSerialNumberRecherche(字符串serialNumberRecherche){
this.serialNumberRecherche=serialNumberRecherche;
}
在没有看到一些代码的情况下,很难考虑解决此问题的方法。