如何在Vaadin 8中导出“过滤的”网格?

时间:2018-11-28 16:56:26

标签: java vaadin vaadin8 vaadin-grid

我对所有网格数据都有以csv格式导出的方法。如果我的用户在网格中过滤了内容,则只能查看该内容,并且“导出”按钮将继续导出所有网格数据。如何仅导出过滤后的网格数据?

/**
 * generateCSVExportFile
 */ 
public void generateCSVExportFile() {
    try { // Try
        // Actual date
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        Date date = new Date();

        // (1) Generate String buffer
        String string2csv = generateCSVBufferString();

        // (2) Generate file downloader file
        fileDownloaderCSV.setFileDownloadResource(createResourceFromString(
                SAMPLE_CSV_FILE + dateFormat.format(date) + CONF_CSV_EXTENSION, string2csv));
        fileDownloaderCSV.extend(generateCSVFileButton);

    } catch (Exception error) { // Catch
        logger.error(error.toString(), error);
    }
}

谢谢

最好的问候

1 个答案:

答案 0 :(得分:3)

一种替代方法是使用DataCommunicator中的fetchItemsWithRange方法,该方法在排序和过滤后返回项目列表。所以我想这正是您想要的

grid.getDataCommunicator().fetchItemsWithRange(0, grid.getDataCommunicator().getDataProviderSize());