发布于2025-01-07 22:07 阅读(149) 评论(0) 点赞(5) 收藏(5)
我有一个 AjaxFallbackDefaultDataTable 表,其中包含一些文本列 (PropertyColumn)。该表还包含一个带有可编辑文本字段的列。我想通过 AJAX 更新其中一个 PropertyColumn,但我不想更新整个表。我该怎么做?
如果您使用 Wicket 6,则可以使用组件间事件。
首先创建一个包含以下内容的事件AjaxRequestTarget
:
public class AjaxUpdateEvent {
private final AjaxRequestTarget target;
public AjaxUpdateEvent(AjaxRequestTarget target) {
this.target = target;
}
public AjaxRequestTarget getAjaxRequestTarget() {
return target;
}
}
Component
你可以使用该方法以任何你想要的方式发送这样的事件send()
。你可以像这样发送事件:
send(getPage(), Broadcast.DEPTH, new AjaxUpdateEvent(target));
然后,AjaxFallbackDefaultDataTable
我将尝试覆盖 newCellItem,并在某个时间从某个地方触发时监听该事件,并将所需的单元格项添加到 AjaxRequestTarget。类似这样的事情:
AjaxFallbackDefaultDataTable table =
new AjaxFallbackDefaultDataTable("table", null, null, FLAG_RESERVED1) {
@Override
protected Item newCellItem(String id, int index, IModel model) {
Item item;
if (index == indexOfColumnYouWant){
item = new Item(id, index, model) {
@Override
public void onEvent(IEvent<?> event) {
super.onEvent(event);
if ((event.getPayload() instanceof AjaxUpdateEvent) ){
((AjaxRequestTarget)event.getPayload()).add(item);
}
}
};
} else {
item = super.newCellItem(id, index, model);
}
return item;
}
};
此外,如果可以的话,您还可以将该项目添加到目标中isVisible()
。
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/694787/440a6422d9ae026efbfb/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!