合并DataGrid中的列标题或GWT 2.4中的cellTable

时间:2015-07-04 18:10:22

标签: java gwt datagrid mvp4g

我想知道在DataGrid或CellTable中使用colspan的解决方法

我看到了GWT展示:http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCustomDataGrid

但GWT 2.4中没有TableRowBuilder和AbstractHeaderOrFooterBuilder

我还发现CellTableBuilder API对于此目的也很好,但它在GWT 2.4中不可用

所以我想知道在GWT 2.4中是否有另一种合并列标题的技巧?

或者如何使用DOM获取列标题?

1 个答案:

答案 0 :(得分:0)

以下是我在GWT 2.4中解决此问题所做的工作。

我已经像这样使用了DOM

Element thead = view.datagrid.getElement().getElementsByTagName("thead").getItem(0);
    Element tr;
        tr = thead.getElementsByTagName("tr").getItem(0);
    for (int i = 0; i < tr.getChildCount(); i++) {
        Element th = tr.getElementsByTagName("TH").getItem(i);
        String headerText = th.getInnerHTML();
        String sortHeader = "";
        String colspanValue = th.getAttribute("colspan");
        if (th.getChildCount() == 1) {
            Element div = th.getElementsByTagName("DIV").getItem(0);
            sortHeader = null != div ? div.getElementsByTagName("DIV").getItem(1).getInnerHTML()
                    : "";
        }
        if (sortHeader.equalsIgnoreCase("COLUMHEADER1") && colspanValue.equals("1")) {
            th.setAttribute("colspan", "2");
            Element thNext = tr.getElementsByTagName("TH").getItem(i + 1);
            thNext.setAttribute("style", "display: none !important");
        }

}

并且在第一次启动时我使用了计时器(1秒是最小值),就像这样

 new Timer() {
        @Override
        public void run() {
            view.datagrid.setVisible(true);
            //call to merge column code or function
        }
    }.schedule(1000);

“视图”。因为主类是演示者而使用

修改 display:none用于排序问题