[英]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.