PageableListView Не отображать мои данные как требуется - PullRequest
1 голос
/ 20 ноября 2011

Я работаю над калиткой, где я должен показывать свои данные в

<tr>
   <td>Name</td>
   <td>Single Player Score</td>
   <td>Double Player Score</td>
   <td>Total Score</td>
</tr>
<tr wicket:id="data">
   <td wicket:id="name"></td>
   <td wicket:id="singlePlayerScore"></td>
   <td wicket:id="doublePlayerScore"></td>
   <td wicket:id="totalScore"></td>
</tr>

Класс модели My Player: класс игрока с атрибутами: singlePlayerScore, doublePlayerScore (), имя с помощью getter и setterтакже список данных, полученных из базы данных.

Данные из SQLQuery имеют вид:

name        score    gamemode
  A           200       singlePlayerMode 
  A           100       doublePLayerMode
  B           400       singlePlayerMode 
  B           300       doublePLayerMode
dataList == player.getScoreList();

Мой PageableListView имеет вид:

     final PageableListView listView = new PageableListView("data",dataList,10){
@Override
protected void populateItem(Item item){
    player = (Player)item.getModelObject();
    item.add(Label("name",player.getName()));
    item.add(Label("singlePlayerScore",player.getName()));
    item.add(Label("doublePlayerScore",player.getName()));
    item.add(Label("totalScore",String.valueOf(player.getSinglePlayerScore()+player.getDoublePlayerScore())));
  }
}

Моя проблема какя получаю как:

Name         single Player Score               Double Player Score       Total Score
A              0                                  100                      100
A              200                                 0                       200
B              0                                   300                     300
B              400                                  0                      400

Как мне добиться просмотра ниже на моей веб-странице?

 Name         single Player Score               Double Player Score       Total Score
    A              200                                  100                     300
    B              400                                  300                     700

Пожалуйста, помогите мне, почему это происходит?Я предполагаю, что мой список имеет размер четыре, это одна из причин, почему он отображает представление?Так, что я могу сделать, чтобы получить как требуется представление рендеринга?

1 Ответ

1 голос
/ 20 ноября 2011

Вы должны отредактировать ваш SQL-запрос примерно так:

SELECT 
    name, 
    sum(singleplayerscore), 
    sum(doubleplayerscore), 
    (sum(singleplayerscore) + sum(doubleplayerscore)) AS totalscore 
FROM `scorelist` GROUP BY name

Таким образом, результаты суммируются для каждого игрока (имя столбца) и создается дополнительный столбец totalalscore с общим счетом.

...