前情提要
在前面的例子里,我们使用Grid来展示学生资料
grid = grid {
isExpand = true
setDataLoader(Student.dataLoader)
addColumnFor(Student::id).setHeader("序号")
addColumnFor(Student::name){
setHeader("姓名")
}
addColumnFor(Student::gender).setHeader("性别")
addColumnFor(Student::birthday).setHeader("生日")
addColumnFor(Student::height).setHeader("身高")
addColumnFor(Student::weight).setHeader("体重")
addButtonColumn(VaadinIcon.EYE, "view") { StudentView.navigateTo(it.id!!) }
addButtonColumn(VaadinIcon.EDIT, "edit") { EditStudent.navigateTo(it.id!!) }
if (Session.loginService.isUserInRole("administrator")) {
addButtonColumn(VaadinIcon.TRASH, "delete") {
confirmDialog(text = "是否确定删除${it.name}的资料?") {
it.delete()
this.refresh()
}
}
}
}
上述例子里使用setDataLoader(Student.dataLoader)
将资料载入grid
VoK提供了非常便利的资料过滤器,只需要一点点设定
grid{ ... }
加一标题列,并 appendHeaderRow()
val filterBar = appendHeaderRow().asFilterBar(this)
addColumnFor(Student::name){
setHeader("姓名")
filterBar.forField(TextField(), this).istartsWith()
}
执行结果
在学生成绩范例里,性别使用Enum选单供选取
enum class Gender {
Female,
Male,
Custom
}
VoK 提供 enumComboBox<>()
, 让使用下拉式选单过滤资料变得容易
addColumnFor(Student::gender) {
setHeader("性别")
filterBar.forField(enumComboBox<Gender>(), this).eq()
}
倘若栏位内容为Boolean值,则使用
addColumnFor(Student::gender) {
setHeader("性别")
filterBar.forField(BooleanComboBox(), this).eq()
}
使用 NumberRangePopup()
输入数字区间,inRange()
可以用来过滤任何型态的数字
addColumnFor(Student::height){
setHeader("身高")
filterBar.forField(NumberRangePopup(), this).inRange()
}
大於等於
filterBar.forField(NumberField(), this).ge()
小於等於
filterBar.forField(NumberField(), this).le()
addColumnFor(Student::birthday) {
setHeader("生日")
filterBar.forField(DatePicker(), this).onDay(LocalDateTime::class)
}
日期区间
filterBar.forField(DateRangePopup(), this).inRange(Student::birthday)
0x1 前言 昨天把 Controller 跟 Route 建立好了,今天来针对回覆内容做更新,并简...
之前我们在范例练习React时,都是引用CDN的方式来建立开发环境,今天要介绍的是Create Re...
首先要介绍的是在component标签中利用v-bind:is(v-bind缩写是「:」所以可以直接...
虽然 Blazor 不需要用到 JavaScript,但某些已有的 library 还是很方便,不能...
本文内容 本篇内容为阅读官方文件 ngStyle 的笔记内容。 ngStyle 使用时机 昨天 Da...