如何解决如何在 Vaadin 流 (Vaadin 14) Grid 中创建可以在 ValueChangeEvent 中写回的 TextField ? 不使用网格编辑器
我正在尝试将 TextField 作为可编辑组件放在 Grid 的每一行中。 但我不知道如何在 ValueChange 事件中回写?
下面是我的代码
SerializableBiConsumer<emisTextField,PO_DETL_GRID> consumer =
(tf,detl) ->{
tf.setValue( detl.getP_NO());
} ;
SerializableSupplier<emisTextField> ss = () -> {
emisTextField tf =new emisTextField();
tf.addValueChangeListener(c->{
//how to write back newValue to my PO_DETL_GRID item ?
});
return tf;
};
ComponentRenderer cr = new ComponentRenderer<emisTextField,PO_DETL_GRID>(ss,consumer);
Grid.Column p_no_column = edit_grid.addColumn( cr);
grid.addColumn(cr);
解决方法
您可以使用这个替代构造函数:
SerializableFunction<MyItem,TextField> function = item -> {
TextField tf = new TextField();
tf.setValue(item.getMyValue());
tf.addValueChangeListener(e -> item.setMyValue(e.getValue()));
return tf;
};
ComponentRenderer<TextField,MyItem> cr = new ComponentRenderer<>(function);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。