我使用的是vaadin tree table,我想爲滿足某些業務條件的某些行設置第一列colspan(等於表中列的總數)。對於表格行的其餘部分,單個列將正常顯示。
我試過使用生成的列,並通過設置明確的列寬,也有組合列;但是這樣做會更改所有行/列的佈局。請建議我們如何實現這一目標。
謝謝!Vaadin表| |如何設置colspan
1
A
回答
0
您可以通過調用TreeTable#setColumnExpandRatio(String columnName, float value)
來設置列的寬度。
在下面的示例中,我將列「名稱」的寬度設置爲75%。如果你沒有指定其他任何東西,其餘的列將適合其餘的空間。
ttable.setColumnExpandRatio("Name", 0.75f);
ttable.setColumnExpandRatio("Number", 0.25f); //not necessary
嘗試下面,我從Vaadin書修改的例子:
@Theme("mytheme")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
final VerticalLayout layout = new VerticalLayout();
layout.setSizeFull();
TreeTable ttable = new TreeTable();
ttable.addContainerProperty("Name", String.class, null);
ttable.addContainerProperty("Number", Integer.class, null);
//Add some sample data
ttable.addItem(new Object[]{"Menu", null}, 0);
ttable.addItem(new Object[]{"Beverages", null}, 1);
ttable.setParent(1, 0);
ttable.addItem(new Object[]{"Foods", null}, 2);
ttable.setParent(2, 0);
ttable.addItem(new Object[]{"Coffee", 23}, 3);
ttable.addItem(new Object[]{"Tea", 42}, 4);
ttable.setParent(3, 1);
ttable.setParent(4, 1);
ttable.addItem(new Object[]{"Bread", 13}, 5);
ttable.addItem(new Object[]{"Cake", 11}, 6);
ttable.setParent(5, 2);
ttable.setParent(6, 2);
ttable.setColumnExpandRatio("Name", 0.75f);
ttable.setColumnExpandRatio("Number", 0.25f);
ttable.setSizeFull();
layout.addComponents(ttable);
layout.setMargin(true);
layout.setSpacing(true);
setContent(layout);
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}
0
您可以使用com.vaadin.ui.Table.setRowGenerator
:
實例與Java 8 + Vaadin 7.6.1
setRowGenerator((Table table, Object itemId) -> {
if (itemId instanceof MyClassThatIdentifiesARowToMerge) {
Table.GeneratedRow generatedRow = new Table.GeneratedRow("text-of-merged-cell");
generatedRow.setSpanColumns(true);
return generatedRow; // merge
}
return null; // doesn't merge
});
相關問題
- 1. 如何設置表格colspan?
- 2. 如何配置intellij vaadin導入設置?
- 3. 用jQuery動態設置colspan
- 4. 動態設置colspan jquery
- 5. 如何在vaadin中設置autocomplete =「off」
- 6. Vaadin GWT RPC設置?
- 7. Vaadin web.xml中設置
- 8. Vaadin表:如何設置最大初始列寬度
- 9. 如何在Vaadin表中爲特定列設置字體大小?
- 10. 如何爲Vaadin表設置多行標題?
- 11. 如何在vaadin表上設置自定義分揀機?
- 12. 動態計算並設置colspan值
- 13. Colspan屬性沒有從變量設置
- 14. 如何在android gridview單元格中設置colspan
- 15. ASP.NET WebForms - 如何在GridView中爲標題行設置colspan?
- 16. reportlab:在rml中設置td的colspan
- 17. Colspan不適用於寬度設置? (IE7)
- 18. 如何在JSF panelGrid中設置colspan和rowspan?
- 19. 如何設置colspan爲jQuery數據表一旦show hide函數被調用?
- 20. 如何將背景圖像設置爲具有colspan的表單元格?
- 21. 如何在Vaadin中設置cookie並將其置於前端?
- 22. 在基於代碼的數據表列設置中使用colspan
- 23. 動態表colspan
- 24. 表colspan&rowspan
- 25. Vaadin錶行
- 26. 如何在單個vaadin表中放置更多表?
- 27. PDF中的Colspan ::表
- 28. HTML表colspan屬性
- 29. 表佈局colspan rowspan
- 30. 表格 - 某種colspan?
' TreeTable#setColumnExpandRatio(String columnName,float value)'將更新所有行的列寬。我的要求是擴大一些行的一些單元格的寬度(而不是所有的行)。謝謝。 – masT
TBH,我不認爲這是可能實現的。列的寬度是「全局」,因此您無法將其設置爲特定行。我看過的所有表格都是「對齊」的。你可以嘗試一下樹形網格插件。它擴展了網格,可以更好地調整網格或創建分組列。否則,我認爲你可能會重新考慮你的用戶界面。如果你有圖表或計劃,它肯定會有所幫助。 –