2015-07-04 8 views
0

Я хочу знать, обходной путь, используемый, чтобы Colspan в DataGrid или CellTableслияния заголовка в DataGrid или cellTable в GWT 2,4

я увидел на GWT витрину: http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCustomDataGrid

но нет TableRowBuilder и AbstractHeaderOrFooterBuilder в GWT 2.4

Я также обнаружил, что CellTableBuilder API хорош также для этой цели, но он не доступен в GWT 2.4

Так что я хочу знать, если есть еще один трюк, чтобы объединить Колум ns в GWT 2.4?

Или как получить заголовок столбца с помощью DOM?

ответ

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); 

" Посмотреть." используются потому, что основной класс является ведущим

EDIT: дисплей: нет используются для выдачи сортировки

Смежные вопросы