有没有办法在p:selectManyMenu中进行多次选择而不使用ctrl键

时间:2016-09-05 11:34:56

标签: jsf primefaces

我有primefaces selectManyMenu,我想在不使用ctrlkey之类的情况下选择多个项目。有没有办法做到这一点?我为此找到了richfaces multipleKeyboardFree,但是在primefaces中我遗憾地找不到

Richfaces示例:http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=extendedDataTable&sample=exTableSelection&skin=blueSky

Primefaces只能点击复选框或点击ctrl,我不想这样。我想点击行上的任何地方,它必须像richfaces示例一样工作

1 个答案:

答案 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的项目,它可以正常工作