我有一个带复选框和分页的JSF表。我有以下问题:我想在所有表页中选择所有行并删除它们。简单的方法是创建Java哈希映射并存储密钥。然后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方法将如何知道每个复选框都被选入表中并删除行? 我怎么能解决这些问题?
答案 0 :(得分:2)
如果我使用JavaScript选择所有复选框,可能只有 如果我打开,将选择第一页上的复选框 第二页将不会选中复选框。
这是事实,因为数据表(甚至整个页面)都会被重新渲染,并且会失去其检查状态。
我如何解决这些问题?
专注于您尝试实现的目标。实际上,您不希望在分页数据表中选择所有一百万个条目,但希望删除支持数据表的整个列表或集合。
为什么不添加一个简单清空列表的“全部删除”按钮?那么你根本不需要关心选择框。