簡體   English   中英

使用對話框模式更新檢票面板

[英]Update wicket Panel using dialog modal

我有一個面板,應該使用對話框Modul中的數據進行更新。 在Panels構造函數中,我有一個數據模型,該數據模型應填充面板中的組件。

Panel構造函數如下所示:

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

該面板在我的頁面中添加為:

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

在打開對話框的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)
                 ....

這樣,我看不到面板中的組件已更新。

目前,我解決了以下問題:

    remove(myPanel);
    myPanel = new MyPanel("myPanel", myUpdatedDataModel);
    myPanel.setOutputMarkupId(true);
    add(myPanel);
    target.appendJavaScript("window.location.reload()");

不知道您的MyDataModel()是什么。 但是您可以使用共享的檢票口模型。

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

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

然后將dataObjectToSHare傳遞給面板參數

這個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM