0

我有一个带有复选框和分页的 JSF 表。我有以下问题:我想将所有行选择到所有表格页面中并删除它们。简单的方法是创建一个 Java hashmap 并存储密钥。然后Java方法会使用键将它们删除到hashmap中,但是如果hashmap超过100万会发生什么?也许内存泄漏?也许解决方案是使用这个简单的 JavaScript 来选择所有复选框:

//Select all checkbox
function selectall(){     
    $('button').click(function() {
        $("[type=checkbox]").prop("checked", true);
    })​     
}

//Unselect all checkbox
function selectall(){     
    $('button').click(function() {
        $("[type=checkbox]").prop("checked", false);
    })​     
}

我面临两个问题: 1. 如果我使用 JavaScript 选中所有复选框,可能只会选中第一页上的复选框,如果我打开第二页,则不会选中复选框。JavaScript 仅适用于一页。2. 如果我在单击删除按钮时使用 JavaScript 选择所有复选框,Java 方法如何知道每个复选框都被选中到表中并删除行?我该如何解决这些问题?

4

1 回答 1

2

如果我使用 JavaScript 选择所有复选框,可能只会选择第一页上的复选框,如果我打开第二页,则不会选择复选框。

这是真的,因为数据表(甚至整个页面)被重新渲染并且会失去它们的检查状态。

我该如何解决这些问题?

专注于你试图实现的目标。实际上,您不想选择分页数据表中的所有一百万个条目,而是想删除支持您的数据表的整个列表或集合。

为什么不添加一个简单地清空列表的“全部删除”按钮?那么你根本不需要关心选择框。

于 2012-05-22T21:12:55.940 回答