[英]Vaadin Flow grid add an empty row
有人如何以編程方式添加新的空行(可能在網格底部或頂部)。 在稍后的狀態下,用戶輸入數據,或者在某些操作之后保存可能在數據庫中的所有行。
從技術上講,它應該相當簡單,特別是如果您將ListDataProvider
用於網格,這里是簡化示例:
Grid<Bean> grid = new Grid<>(Bean.class);
ListDataProvider<Bean> dp = new ListDataProvider<>(getData());
grid.setDataProvider(dp);
add(grid);
Button button = new Button("Add row");
button.addClickListener(event -> {
Bean bean = new Bean();
dp.getItems().add(bean);
dp.refreshAll();
grid.getEditor().editItem(bean);
});
add(button);
您使用 ListDataProvider 設置網格的數據提供者。
Bean 對象覆蓋 hashCode 方法。 例如 :
@Transient 私有長 sId;
public ConstructorMethod () { sId = System.currentTimeMillis(); }
@Override public int hashCode() { if (isNew()) return (int) (super.hashCode()+sId); 否則返回 super.hashCode(); }
新建一個 bean 對象並添加到網格的 ListDataProvider
BeanClass item = new BeanClass(); (ListDataProvider<BeanClass>)grid.getDataProvider().getItems().add(item); (ListDataProvider<BeanClass>)grid.getDataProvider().refreshAll();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.