1

我有一个面板,应该使用对话框 Modul 中的数据进行更新。在 Panels 构造函数中,我有一个数据模型,它应该填充面板中的组件。

Panel 构造函数如下所示:

      public MyPanel(String id, final MyDataMOdel aDataModel) {
    super(id);
            ....
          }

该面板在我的页面中添加为:

       MyDataModel myDataModel = new MyDataModel();
    MyPanel myPanel = new MyPanel("myPanel", myDataModel);

在 Open Dialog setWindowClosedCallback方法中,我更新了 DataModel

            myModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback()
            {
                private static final long serialVersionUID = -1746088901018629567L;

                public void onClose(AjaxRequestTarget target)
                {
                    update myDataModel here
                    Got the updated datamodel here (I can see that it is updated)
                      target.add(myPanel)
                 ....

这样,我看不到面板中的组件已更新。

4

2 回答 2

0

暂时,我解决如下:

    remove(myPanel);
    myPanel = new MyPanel("myPanel", myUpdatedDataModel);
    myPanel.setOutputMarkupId(true);
    add(myPanel);
    target.appendJavaScript("window.location.reload()");
于 2013-04-11T07:28:50.740 回答
0

我不确定你的MyDataModel()是什么。但是您可以使用共享检票口模型。

          Model<YourDataObjectToShare> dataObjectToSHare = new Model<YourDataObjectToShare>()
    {
        private static final long serialVersionUID = -6394439155356911110L;

        @Override
        public YourDataObjectToShare getObject()
        {
            return ... The Updated Shared data here
        }
    };

然后传递dataObjectToSHare给面板参数

这个

于 2013-04-18T08:04:04.740 回答