jqwicket PrettyPopin Modal在提交后不会返回父页面

时间:2013-04-09 04:41:52

标签: java scala wicket

在一个wicket网页中,我使用ListView来显示对象和每一行 该组件有一个链接可以打开一个PrettyPopin模态窗口来编辑一个对象。

问题是,在提交事件中,模态窗口不会返回父页面或原始页面并重新加载。

首先显示父页面代码

class ObjListPanel(pageOrigin: PageBase/*WebPage*/)
  extends Panel("objListPanel") with Serializable {

  add(new ListView[Obj]("listObj", listData) {

    def populateItem(item: ListItem[Obj]) = {
      item.add(new LinkEdit("edit", obj))
    }
  })

  var editObjWinModal = new ModalWindow("modalEditObj")

  editObjWinModal.setPageMapName("modalEditObj")
  editObjWinModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
    def onClose(target: AjaxRequestTarget) = setResponsePage(pageOrigin)
  })
  add(editObjWinModal)

  private class LinkEdit(id: String, obj: Obj) extends Link[String](id) {

    add(new Label("label", new Model[String]() {
      override def getObject: String = "Edit"
    }))

    var prettyOpt = new PrettyPopinOptions()
    var pretty = new PrettyPopinBehavior(prettyOpt.width(550).height(200).followScroll(false))
    add(pretty)

    def onClick() {
      new EditObjPanel(editObjWinModal.getContentId(), this.obj, pageOrigin);

      setResponsePage(new EditObjPage(this.obj, pageOrigin))
    }

  }

}

而bellow是子页面的代码,实际上是一个Panel

class EditObjPanel(id: String, obj: Obj, pageOrigin: PageBase/*WebPage*/) extends Panel(id) {

  var form = new Form[Obj]("form") {
    override protected def onSubmit = {

      objController.salvarObj(obj)

      // This method doesn't work
      // after submit the modal didn't close, instead is reloaded again
      setResponsePage(new EditPontoPage(obj, pageOrigin))
    }
  }

  add(form);
  form.setOutputMarkupId(true)

  container = new WebMarkupContainer("container")

  form.add(container);

}

我正在处理这段代码几个小时,但我没有弄错。

有人可以帮我吗?

0 个答案:

没有答案