【问题标题】:Adding Checkboxes to Vaadin Grids向 Vaadin 网格添加复选框
【发布时间】:2021-06-21 22:04:30
【问题描述】:

我在 Vaadin 14 中构建了一个网格,使用解析器从文件中提取,如下所示:

 Grid<String[]> grid = new Grid<>();
        
        try {
            List<String[]> entries = reader.readAll();
            
            // Assume the first row contains headers
            String[] headers = entries.get(0);
            
            for (int i = 0; i < headers.length-1; i++) {
                final int columnIndex = i;
                String header = headers[i];
                String humanReadableHeader = SharedUtil.camelCaseToHumanFriendly(header);
                grid.addColumn(str -> str[columnIndex]).setHeader(humanReadableHeader).setSortable(true).setWidth("100px");
                
            }
            
            grid.setItems(entries.subList(1, entries.size()));

接下来我要做的是向每一行添加一个 CheckBox,它将返回相应行中数据的可视化。所以我的问题有两个:

  1. 是否已经存在通过单击行中的任意位置来模拟此行为的函数?
  2. 如果不是,那么初始化 Grid 以适应这种情况的最佳方法是什么?

【问题讨论】:

  • 我不认为我完全理解你的问题。但是,如果您只想添加复选框,则可以使用带有 ComponentRenderer 的 addColumn 方法
  • 你说的是多选复选框,还是与选择状态无关的复选框?
  • @SimonMartinelli 是正确的,所以我的问题是如何初始化 Grid 以处理 csv 数据和每行数据的相应复选框
  • @AnnaKoskinen 这将是一个单一的选择,网格中的每一行都有一个复选框,但一次只允许检查一个
  • 我还是不明白你的问题。结帐vaadin.com/components/vaadin-grid/java-examples/…

标签: vaadin vaadin-grid vaadin14


【解决方案1】:

只需添加一个组件列:

Grid<String[]> grid = new Grid<>();
  
try {
    List<String[]> entries = reader.readAll();
        
    // Assume the first row contains headers
    String[] headers = entries.get(0);
        
    for (int i = 0; i < headers.length-1; i++) {
       final int columnIndex = i;
       String header = headers[i];
       String humanReadableHeader = SharedUtil.camelCaseToHumanFriendly(header);
       grid.addColumn(str -> str[columnIndex]).setHeader(humanReadableHeader).setSortable(true).setWidth("100px");
    }
        
     // Here goes your checkbox column
     grid.addComponentColumn(item -> {
       // Create the checkbox 
     }).setHeader("<the header>");

    grid.setItems(entries.subList(1, entries.size()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2013-07-27
    • 2015-07-25
    相关资源
    最近更新 更多