我有primefaces selectManyMenu,我想在不使用ctrlkey之类的情况下选择多个项目。有没有办法做到这一点?我为此找到了richfaces multipleKeyboardFree,但是在primefaces中我遗憾地找不到
Primefaces只能点击复选框或点击ctrl,我不想这样。我想点击行上的任何地方,它必须像richfaces示例一样工作
答案 0 :(得分:1)
我所知道的唯一方法(至少取决于PrimeFaces 6.0.x,回答时的当前版本)是覆盖selectManyMenu的bindEvent()函数,所以没有元键的点击(ctrl in this case)不做取消选择。对于line 1879 in the forms.jsf file
的PrimeFaces的主干版本所以
if(!metaKey) {
$this.unselectAll();
}
成为
if(!metaKey) {
//$this.unselectAll();
}
如何覆盖完整的PrimeFaces javascript函数可以在this Stackoverflow Q / A中读取
另外,在上面的表格中的1879行下,有if(metaKey&& item.hasClass('ui-state-highlight'))第1882行。如果条件不应该有metakey ,它必须是这样的:if(item.hasClass('ui-state-highlight'))。因此,如果用户想要取消选择没有ctrl的项目,它可以正常工作