2013-03-19 63 views
1

我需要实现“分页”我的应用程序的FlexTable部件:寻呼FlexTable与GWT

这是我在那里呈现一个产品成3列单元格初始代码:

public void renderProducts(Map<Long, Product> mp) { 
    int i = 0; 
    int j = 0; 

    Iterator it = mp.entrySet().iterator(); 
    while (it.hasNext()) { 
     Map.Entry pairs = (Map.Entry)it.next(); 

     Product product = (Product) pairs.getValue(); 
     ProductWidget pw = productInstance.get(); 
     pw.setTitle(product.getName()); 
     pw.setImageUrl(product.getImageUrl()); 
     pw.setContent(product.getInfo()); 
     pw.setUrl(product.getUrl()); // "More" button anchor 
     List<String> feats = product.getFeatures(); 
     for (String f : feats){ 
      pw.addFeature(f); 
     } 

     flextable.setWidget(i, j, pw); 
     j++; 
     if (j == 3){ 
      i++; 
      j = 0; 
     } 
     it.remove(); // avoids a ConcurrentModificationException 
    } 
} 

极品为此在N个页面中进行分页。我最初的想法是将地图拆分为地图列表...

我的意思是,FlexTable中是否有任何“数据源”?

+0

你有一个模型,需要分页,那么为什么不CellTable/DataGrid的?只是问问。 – 2013-03-19 12:36:22

+0

我需要将一个小部件插入到可伸缩的“单元”中,请参阅:flextable.setWidget(...) 您有任何建议吗? – xybrek 2013-03-19 12:53:24

回答

1

如果您确实需要使用FlexTable并提供分页,则最好使用单元格表so older question。简单的寻呼机实现您想要的所有功能。

如果你想使用FlexTable,你必须提供你自己的寻呼机实现。这可以通过各种方式完成,使用next和previous按钮或者Labels添加点击处理程序并进行迭代。

由于物品没有以任何方式排列,因此地图也不适用。我会将所有项目添加到列表中,并使用所述列表作为我的数据源。

您还需要一种方法来保存当前页面和项目/页面(可能是静态变量,如果想保存的网页已更改,甚至后)

+0

是啊,但我没有找到细胞表很容易举行一个小部件。我试图展示的是一个产品小部件,它不是一个真正的文本 – xybrek 2013-03-19 13:35:34

+0

这不是一个问题,虽然解决方案有点复杂,但是一旦掌握了基本概念,它就非常简单。使用自定义单元格https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCustomCells – 2013-03-19 13:39:09