Vaadin 8 Grid中是否有一种方法可以自动将所有JavaBean-pattern属性显示为表中的列?并使用属性名称自动标记每个列标题?
在this page in the Vaadin guide的绑定到数据部分,我们看到这段代码,我们必须明确指定哪些属性用作网格中的列。
Grid<Person> grid = new Grid<>();
grid.setItems(people);
grid.addColumn(Person::getName).setCaption("Name");
grid.addColumn(Person::getBirthYear).setCaption("Year of birth");
答案 0 :(得分:4)
是的,这可以通过将bean类型作为参数传递给网格构造函数来实现:
Grid<Person> grid = new Grid<>(Person.class);
<强>的JavaDoc:强>
/** * Creates a new grid that uses reflection based on the provided bean type * to automatically set up an initial set of columns. All columns will be * configured using the same {@link Object#toString()} renderer that is used * by {@link #addColumn(ValueProvider)}. * * @param beanType * the bean type to use, not <code>null</code> * @see #Grid() * @see #withPropertySet(PropertySet) */
答案 1 :(得分:1)
您可以使用$sql_task = "SELECT * FROM task where task_assignee='" . $user_result['id']."' and task_start_date < DATE_SUB(NOW(), INTERVAL 3 DAY)";
:
com.vaadin.data.PropertySet
对于基于JavaBean属性的基于PropertySet<Person> ps = ...;
Grid<Person> g = Grid.withPropertySet(ps);`
的反射,Vaadin提供:
PropertySet
对于标准用例(默认的BeanPropertySet足够好),你可以简单地使用(正如@JDC已经回答的那样):
BeanPropertySet.get(Person.class)