Ich habe eine vaadin Tabelle, mit sagen wir 5 Spalten. In der letzten Spalte (ganz rechts) haben wir die Schaltflächen zum Bearbeiten/Löschen, die immer die gleiche Breite haben.Vaadin Tabellenspalten Autosize/Autoscale ohne horizontale Scrollbar
Wenn ich die Breite der letzten Spalte auf eine bestimmte Breite und alle anderen Spalten auf eine bestimmte setColumnExpandRation(10);
setzen, dann ist alles in Ordnung, mit der Ausnahme, dass die normalen Spalten nicht automatisch skaliert werden.
Wenn ich die in der letzten Spalte auf eine bestimmte Breite und alle anderen Spalten automatisch zu skalieren, (setColumnWidht(-1)
), dann werden die normalen Spalten bemessen, um den Inhalt abhängig, sondern die ganze Tischbreite zu groß ist und einen horizontalen Scrollbalken.
Beispiel für einen solchen Fall im Bild unten
Und der Java-Code:
Table tb= new Table();
tb.setWidth(100, Unit.PERCENTAGE);
tb.setHeight(100, Unit.PERCENTAGE);
layout.addComponent(tb);
BeanItemContainer<Person> pList =
new BeanItemContainer<>(Person.class);
for (int i=0; i < 20; i++)
{
Person p1= new Person("******", "++++++++++", "--++--++--++--++--++--++", "????", "3333 "+i, new Date());
pList.addBean(p1);
}
tb.setContainerDataSource(pList);
tb.setColumnWidth("zip", 20);
tb.setColumnExpandRatio("firstName", 1);
Gibt es eine Möglichkeit, die letzte Spalte mit einem haben feste Breite, aber immer noch die anderen Spalten automatisch sortiert, um Breiten abhängig vom Inhalt zu haben?
Was meinst du mit Satz: "normale Spalten sind nicht automatisch skaliert". Was sind normale Spalten? Spalten mit Erweiterungsfaktor 10? –
Ich verstehe, Sie meinen Spalten, die keine Spalten generiert werden. –
ein minimaler Code Beispiel ist immer hilfreich eine gute Antwort bekommen :) –