2014-09-03 45 views
0

通常,對於POJO/DTO的GWT列表視圖,我通常使用ListDataProider和CellTable,並將CellTable放置到具有SimplePager的垂直面板中。一切都很好。尋找使用celltable在單行顯示多條記錄的方法

我有一個場景,Pojo的DTO只有3個字段;因此,創建一個列表視圖是很好的,因爲我可以將我的DTO的兩列相對應地放在一起。例如,不是每行只有三列,而是前六列表示前三列代表一個DTO實例,而後三列(重複)代表第二個DTO實例。

有人在使用celltables或其他GWT組件之前成功完成了這個任務嗎?尋找一個簡單的方法。

我的回退位置(足夠好)是將FlexTable與搜索表單一起使用,並將結果記錄到40條記錄。兩列20個DTO's。

回答

0

我做了類似的事情。我正在使用網格。對齊組件的關鍵是這一行的代碼:要顯示

myGrid.setWidget(position/COLUMNS_NUMBER+1, position%COLUMNS_NUMBER, lName); 

凡LNAME是GWT標籤與元素(財產)(POJO我/ DTO的「名」屬性)。 COLUMNS_NUMBER是我想要顯示多少列的常數。

我只顯示這個屬性,但是你可以很容易地適應這個想法,在不同列中顯示多個DTO的多個屬性。我的算法只是通過DTO集合迭代,獲取每個DTO的名字prpoerty,這將被插入在通過setWidget網格中的標籤,並更新索引變量位置,開始在0

我還需要這個條件:

  if(position%COLUMNS_NUMBER==0){ 
       list.insertRow(position/COLUMNS_NUMBER +1); 
      } 

我只顯示每個DTO的1瓦特財產,但這個想法也沒有每個人在不同的行以及自定義顯示的列數。再次,您可以根據自己的需要調整自己的方式,通過改變索引變量的位置的方式以及顯示DTO屬性的列或(更簡單)的列,只需選擇不同的屬性即可顯示每次取決於

postiont%3 

因爲您想顯示每個DTO的3個屬性。

讓我知道這是否有幫助。

+0

謝謝。一個有趣的/乾淨的方法。我將與有序數據垂直,因此如果顯示20行...第二列有第21條記錄;因此尋呼/滾動變得更加複雜。 – slaman 2014-09-03 22:16:43

+0

對不起,我沒有從你的問題得到。我想那樣會更棘手。你需要把你的元素放在一個結構中,你可以按照位置來獲取它們,比如列表,並且獲取(索引)並獲得(索引+ 20)(mod任何內容,以及頁面/滾動?)。您需要確保第二列的元素實際存在(您可以訪問該集合中的該位置)。你有什麼問題?如果您認爲這是一個很好的答案,請不要忘記投票。 – Diego 2014-09-04 02:34:48