gpt4 book ai didi

java - vaadin 8 网格行索引中的问题

转载 作者:行者123 更新时间:2023-12-02 02:09:11 24 4
gpt4 key购买 nike

我正在将我的项目从 vaadin 7 迁移到 vaadin 8。因为表已被删除。所以我用网格替换它。以前我是为多重选择获取行 ID,如下所示:

  Set<Object> itemIds = table.getValue();
for(Object lItem : itemIds){
Integer lId = Integer.parseInt(lItem.toString());
}

但是在 vaadin 8 网格中,有一个 itemclick 监听器,仅当我们单击任何项​​目并且单击任何复选框进行选择时,它才提供 rowindex,它不会返回任何内容,因为复选框仅适用于选择监听器。参见下面的代码:

  lGrd.addItemClickListener(new ItemClickListener<Employee>() {
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
public void itemClick(ItemClick<Employee> event) {

if(lGrd.getSelectionModel().isSelected(event.getItem())){
if(!lSelection.contains(event.getRowIndex())){
lSelection.add(event.getRowIndex());
}
}else if(lSelection.contains(event.getRowIndex())){
lSelection.remove(event.getRowIndex());
}

Notification.show(lSelection.toString() + " Selected Employees Row Id");
}
});

还使用选择监听器,它不会像 itemclicklistener 中那样返回任何行索引

  lGrd.addSelectionListener(new SelectionListener<Employee>() {
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
public void selectionChange(SelectionEvent<Employee> event) {
Set<Employee> lSet = event.getAllSelectedItems();
for(Employee emp : lSet){
//how to fetch row id here
}
});

它提供选定的项目,但没有行索引。如何在此处获取员工行索引。另外,如果我想要任何列数据。如何获取它?

最佳答案

自 Framework 版本 8.4.0(发行说明)起,Grid.ItemClick 事件(Grid.ItemClick 文档)还包含被单击项目的行索引信息。

在此之前我们有一个丑陋的解决方法:(

我们帽子

私有(private)列表项目;私有(private)电网;作为类字段。

在初始化方法中,我们用项目填充了列表并有

grid.setITems(items);

onclick 我们总是从早期的 click 事件中获得一些丑陋的东西,比如 (Item) event.getSource().getValue() 我认为在现代 Vaadin 中,事件是参数化的,所以我们只需获取 event.getValue()

然后我们使用 items.indexOF(event .. get Value ..);

所以我非常感谢,从 Vaadin 8.4 开始我们可以重构这个:)! ! !

关于java - vaadin 8 网格行索引中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com