Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Wicket模态显示渲染(目标)_Java_Ajax_Asynchronous_Wicket - Fatal编程技术网

Java Wicket模态显示渲染(目标)

Java Wicket模态显示渲染(目标),java,ajax,asynchronous,wicket,Java,Ajax,Asynchronous,Wicket,我对Wicket模态窗口有问题。我有一个模态窗口,它对外部服务执行UNIREST调用。响应用于填充列表。该列表由下拉选项使用。问题是Wicket模态窗口位于中继器内,因此可能会发生这样的情况:页面在呈现contenitor页面之前会多次调用以创建模态 class Page{ ListView listView = new ListView(wicket:id, list){ @Override protected void populateItem(ListItem&

我对Wicket模态窗口有问题。我有一个模态窗口,它对外部服务执行UNIREST调用。响应用于填充列表。该列表由下拉选项使用。问题是Wicket模态窗口位于中继器内,因此可能会发生这样的情况:页面在呈现contenitor页面之前会多次调用以创建模态

class Page{
   ListView listView = new ListView(wicket:id, list){
   @Override
        protected void populateItem(ListItem<Article> item) {
           ModalWindow modal = new Modal(){
           //the modal inside the constructor do the call to render the DropDownChoice 
           //and so before the entire page is rendered houndreds of call are done
           }
        }
    }   
}
类页面{
ListView ListView=新建ListView(wicket:id,列表){
@凌驾
受保护的void populateItem(列表项){
ModalWindow模态=新模态(){
//构造函数内的模态调用呈现DropDownChoice
//因此,在呈现整个页面之前,需要进行大量的调用
}
}
}   
}
在浏览器端,这是非常糟糕的,使系统非常慢。有一种方法仅在模式有效显示时在单击时执行调用?有一种方法可以执行异步调用来填充列表,而不会引发Wicket异常


我想用一个空列表初始化列表,然后在单击时调用并通过AJAX重新呈现模式。可能吗?这是一个好方法吗?

您应该在每页只创建一个
ModalWindow
,而当您想显示一个时,在调用
show
方法显示之前,使用
setContent(Component-Component)
方法创建并设置该
ModalWindow
的内容。你现在已经在你的页面构造器中创建了所有的内容了吗?它似乎可以工作了!感谢实际上正确的方法是每页只有一个包含内容的
ModalWindow
,并且在调用
show
方法之前只更改其模型。如果你想尝试一下,我可以给出一个答案来演示这种方法。上面的解决方案已经起作用了。感谢您的回答,在调用
show
方法进行显示之前,您应该只为每页创建一个
ModalWindow
,而当您想显示一个时,请使用
setContent(Component-Component)
方法创建并设置该
ModalWindow
的内容。你现在已经在你的页面构造器中创建了所有的内容了吗?它似乎可以工作了!感谢实际上正确的方法是每页只有一个包含内容的
ModalWindow
,并且在调用
show
方法之前只更改其模型。如果你想尝试一下,我可以给出一个答案来演示这种方法。上面的解决方案已经起作用了。谢谢你的回答