Vaadin-on-Kotlin:用数据填充网格

时间:2018-07-17 13:40:33

标签: kotlin vaadin

也许我错过了文档(grids)中的特定部分,但是如何将简单数据添加到网格(没有数据库连接)?

data class Person(val fname: String, val lname: String, val age: Int)

class MainView : VerticalLayout() {
    init {
        val d = listOf(
            Person("A", "B", 123),
            Person("C", "D", 456),
            Person("E", "F", 789)
        )
        // data not shown:
        grid(dataProvider = ListDataProvider(d)) {
            addColumnFor(Person::fname)
            addColumnFor(Person::lname)
            addColumnFor(Person::age)
        }
       // data not shown:
        grid<Person> {
            setItems(d)
            addColumnFor(Person::fname)
            addColumnFor(Person::lname)
            addColumnFor(Person::age)
        }
        // data not shown:
        val grid = Grid<Person>().apply {
            setItems(d)
            addColumn(Person::fname)
            addColumn(Person::lname)
            addColumn(Person::age)
        }
        add(grid)
    }
}

在此示例中,我使用了here中的启动器。基本上,我想要实现的只是显示official vaadin 10 docs中演示的网格。

我在这里缺少什么?

亲切的问候。

编辑:

禁用表(#table.vaadin-grid)的“ height”属性可修复该错误。这是karibu-dsl中的错误吗?

1 个答案:

答案 0 :(得分:0)

添加isHeightByRows = true可以解决该问题:

grid(dataProvider = ListDataProvider(d)) {
    isHeightByRows = true
    addColumnFor(Person::fname)
    addColumnFor(Person::lname)
    addColumnFor(Person::age)
}