我想使用带有 AjaxSelfUpdatingTimerBehavior 的 ListView。我有一个表单,它需要一个位置和一些文件来使用 MultiFileUploadField 上传。在那之后,我有一个网络服务女巫要存储它们。因此,当我单击提交按钮时,会出现一个模式窗口。它包含我的列表视图。Web 服务完成后,必须更新此列表。我的问题是当我设置 AjaxSelfUpdatingTimerBehavior 时,当我尝试它时,它会等待中提到的秒数new AjaxSelfUpdatingTimerBehavior
然后列表消失。我试过这个
[1]:https ://cwiki.apache.org/confluence/display/WICKET/How+to+repaint+a+ListView+via+Ajax但徒劳无功。我使用 Wicket 6.8.0。
这是标记
<div class="modal-body" style="display: table-cell;">
<table wicket:id="wholeTable">
<tr wicket:id="files">
<td width="30"><span wicket:id="ajaxSpinner"><img
src="../img/ajax-loader.gif" /></span><span
wicket:id="orderValid"><img
src="../img/ok-16.png" /></span><span
wicket:id="orderFailed"><img
src="../img/ok-16.png" /></span></td>
<td wicket:id="container" style="opacity:0.4"><span wicket:id="putMessage"></span></td>
</tr>
</table>
</div>
这是Java代码
WebMarkupContainer wholeTable = new WebMarkupContainer("wholeTable");
IModel<ArrayList<FileUpload>> inputFilesModel = new LoadableDetachableModel<ArrayList<FileUpload>>() {
@Override
protected ArrayList<FileUpload> load() {
return (ArrayList<FileUpload>) inputFiles;
}
};
ListView<FileUpload> fileList = new ListView<FileUpload>("files", inputFilesModel) {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<FileUpload> item) {
final FileUpload file = (FileUpload) item.getModelObject();
WebMarkupContainer container = new WebMarkupContainer("container");
item.add(container);
item.add(new WebMarkupContainer("ajaxSpinner"));
item.add(new WebMarkupContainer("orderValid"));
item.add(new WebMarkupContainer("orderFailed"));
item.get("orderValid").setVisible(false);
item.get("orderFailed").setVisible(false);
container.add(new Label("putMessage", "dépôt de l'archive " + file.getClientFileName()));
}
};
wholeTable.setOutputMarkupId(true);
// Update the whole panel every two second
wholeTable.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)));
wholeTable.add(fileList);
target.add(wholeTable);
add(wholeTable);
我希望我说清楚了。
提前感谢您的回答,如果我的英语不好,我们深表歉意。