- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 ListView 与 AjaxSelfUpdatingTimerBehavior 一起使用。我有一个表单,需要一个位置和一些要使用 MultiFileUploadField 上传的文件。之后,我有一个网络服务女巫将存储它们。因此,当我单击提交按钮时,会出现一个模式窗口。它包含我的 ListView 。当 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);
我希望我已经说清楚了。
提前感谢您的回答,如果我的英语不好,请抱歉。
最佳答案
我相信要正确使用 AjaxSelfUpdatingTimerBehavior,您应该重写“onTimer(AjaxRequestTarget)”方法并将您想要刷新的元素(在您的情况下 - WholeTable)添加到它的 AjaxRequestTarget。
编辑:
更改线路:
wholeTable.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)));
致:
wholeTable.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)) {
@Override
protected void onTimer(AjaxRequestTarget target) {
target.add(wholeTable);
}
});
关于java - 使用 AjaxSelfUpdateTimerBehaviour 的 Wicket ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702268/
我想将 ListView 与 AjaxSelfUpdatingTimerBehavior 一起使用。我有一个表单,需要一个位置和一些要使用 MultiFileUploadField 上传的文件。之后,
我是一名优秀的程序员,十分优秀!