2010-08-04 3 views

Antwort

25

Wenn es eine Option, die Sie FlexTable statt Grid verwenden können:

FlexTable flexTb= new FlexTable(); 
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2); 
flexTb.setWidget(0, 1, new Label("Hello")); 
+6

Gerade FYI, 'FlexTable' ist langsamer als' Grid' (http://code.google.com/p/google-web-toolkit-incubator/wiki/BulkTableRenderers), so es sei denn, Sie haben um Zellen dynamisch hinzuzufügen, sollten Sie mit 'Grid' für maximale Leistung bleiben :) –

+0

@Cataclysm" Und die Frage hat nicht gesagt, dass er irgendwelche Optionen hat "Als technischer Manager sollten Sie wirklich Ihre Art zu denken ändern. Fühlen Sie sich auch frei, "nützliche Informationen" anzubieten. – Jla

+0

Sorry, Frage 'Wie man rowspan und colspan Werte auf gwt Grid Zelle mit einem Widget? Ich nehme an, diese Antwort war nicht dafür. FlexTable, es gibt eine eingebaute Methode, um Colspan oder rowspan zu setzen, aber ich habe auch Schwierigkeiten gehabt, Spannen in meinem GWT-DataGrid zu setzen. Würden Sie mir vorschlagen, FlexTable zu verwenden? Nein, das kann nicht möglich sein. – Cataclysm

8

Es ist eine nicht-so-einfach-Lösung dazu. Es funktioniert, indem man das DOM direkt manipuliert.

Grid g = new Grid(10, 5); 

Element e = g.getCellFormatter().getElement(0, 0); 
e.setAttribute("colspan", "5"); 

ArrayList<Element> toRemove = new ArrayList<Element>(); 
for (int x=1; x<5; x++) 
    toRemove.add(g.getCellFormatter().getElement(0, x)); 
for (Element f : toRemove) 
    f.removeFromParent(); 

Es tut folgende:

  • Satz Attribut "colspan" von ersten TD auf "5"
  • andere TDs in derselben Zeile entfernen

Bitte beachten Sie, dass ich gebraucht zu for-Schleifen. Ich habe es mit einer einzigen Schleife versucht, aber einige der Elemente waren NULL, also habe ich es auf diese Weise versucht und es hat funktioniert.

Thomas

+0

Dies funktioniert nicht in IE 7,8 oder 9. Derzeit suche ich nach der gleichen Lösung für CellTable – drye

+1

ich wechselte von dem Versuch, die Dom zu css-Formatierung zu manipulieren. Es gibt schöne Dinge, die getan werden können wie .my-table tr: erste-kind> td: erste-kind + td {border: keine} und etwas ... Es würde die 2. Zelle in der ersten Zeile formatieren keine Grenze haben. Also habe ich meine Tabelle so formatiert, dass sie zum Beispiel dann angezeigt wird, wenn colspan 5 ist. –

+0

Das Mitnehmen ist Gitter saugen ... – BuvinJ

Verwandte Themen