我上课了:
public class PlayerResult implements Serializable {
private static final long serialVersionUID = 1L;
private long playerResultId;
private Player player;
private String score;
private List<Result> results;
...
}
如何将此课程打印到检票台?第一列应该是玩家名称和姓氏,然后是result.toString()的result.size()列,最后一列应该是得分
请求帮助
答案 0 :(得分:4)
修改强>
对不起,我第一次没有提出这个问题。
我从未尝试过这个(所以不确定是否可能)但也许您也可以将ListView应用于<td>
标签(对于结果),就像在<tr>
标签中一样(对于PlayerResults)。
爪哇:
List<PlayerResult> players = // ...
ListModel<PlayerResult> playersModel = new ListModel<PlayerResult>(players);
ListView<PlayerResult> list = new ListView<PlayerResult>("list", playersModel) {
@Override
protected void populateItem(ListItem<PlayerResult> item) {
Label name = new Label("name", new PropertyModel<String>(item.getModel(), "player.name"));
Label surname = new Label("surname", new PropertyModel<String>(item.getModel(), "player.surname"));
Label results= new Label("results", item.getModelObject().getResults().size());
ListView<Result> scoreList= new ListView<Result>("scoreList", item.getModelObject().getResults()){
@Override
protected void populateItem(ListItem<Result> resultItem) {
item.add(new Label("score", new PropertyModel<Integer>(resultItem.getModel(), "scoreValue ? ")));
}
}
// ...
item.add(name);
item.add(surname);
item.add(results);
item.add(scoreList);
// ...
}
}
HTML:
<table>
<tr wicket:id="list">
<td><span wicket:id="name">[name label]</span></td>
<td><span wicket:id="surname">[surname label]</span></td>
<td><span wicket:id="results">[results label]</span></td>
<!-- and now variable number of tds -->
<td wicket:id="scoreList">
<span wicket:id="score"></span>
</td>
</tr>
</table>
答案 1 :(得分:2)
所有玩家的结果列表都有相同的大小吗? 然后只需实现一个迭代你的PlayerResults的IDataProvider。
添加适当的列:
new PropertyColumn(Model.of(“Name”)。“player.name”);
new PropertyColumn(Model.of(“Surame”)。“player.surname”);
new PropertyColumn(Model.of(“Result 1”)。“results.0”);
new PropertyColumn(Model.of(“Result 2”)。“results.1”); ...
斯文