對不起回答這麼晚,但我迷失在代碼中。我沒有寫,我仍然從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