gpt4 book ai didi

java - 通过 ajax 提交在 ListView 中添加新项目

转载 作者:行者123 更新时间:2023-12-02 00:26:17 26 4
gpt4 key购买 nike

我正在尝试创建基于日期的搜索。我尝试了很多不同的方法来使用 ListView 重新绘制 Ajax 表。当我使用加载页面时, ListView 工作正常--但是当尝试将其添加到 ajaxsubmit buttun 时 -我创建了标记,例如创建了 -18 新行 - 但数据不存在。所以问题是如何在启用 ajax 的 listview 标签中添加数据?

====================

final ListView logTableListView = new ListView<SyslogParsed>("List"){

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void populateItem(ListItem<SyslogParsed> item) {
//SyslogParsed sp = item.getModelObject();
item.add(new Label("col1"));
item.add(new Label("col2" ));
item.add(new Label("col3") );
item.add(new Label("col4" ));

}


};


final PropertyModel<List<SyslogParsed>> sysLogPropertyModel = new PropertyModel<List<SyslogParsed>>(this, "Dao.findAll");


wmc.setOutputMarkupId(true);
wmc.add(logTableListView);
add(wmc);

logTableListView.setReuseItems(true);


sysLogSearchForm.add(new AjaxSubmitLink("submit"){
private static final long serialVersionUID = 1L;


@SuppressWarnings("unchecked")
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

List<?> allLog = syslogParsedDao.findAll();

logTableListView.setList(allLog); logTableListView.modelChanged();


target.add(wmc);
}


});

==============

 <table class="sortable" wicket:id="listContainer">
<tr>
<th> col 1</th>
<th> col2</th>
<th>col 3 </th>
<th> col 4</th>
</tr>
<tr wicket:id="List">
<td wicket:id="col1" > </td>
<td wicket:id="col2"> </td>
<td wicket:id="col3"> </td>
<td wicket:id="col4"> </td>
</tr>
</table>
</wicket:extend>

最佳答案

首先检查您的 ListView 是否分配了模型(我认为是的,因为显示 18 行..),然后在您的 populateItem 中使用 PropertyModel,例如

protected void populateItem(ListItem<SyslogParsed> item) {
SyslogParsed sp = item.getModelObject();
item.add(new Label("col1",new PropertyModel<SyslogParsed>(sp, "blabla1")));
item.add(new Label("col2",new PropertyModel<SyslogParsed>(sp, "blabla2") ));
item.add(new Label("col3",new PropertyModel<SyslogParsed>(sp, "blabla3")) );
item.add(new Label("col4",new PropertyModel<SyslogParsed>(sp, "blabla4") ));
}

您也可以使用CompoundPropertyModel

关于java - 通过 ajax 提交在 ListView 中添加新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9948481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com