Как избежать отмены выбора при выборе одной строки в таблице данных PrimeFaces?

Используя список people=["Лицо 1", "Лицо 2", "Лицо 3"] в качестве примера и пустой список с именем selectedPeople, необходимо выполнить следующие шаги:

1) Выберите одну строку. Результат: "Лицо 2" добавлено к selectedPeople.

Список selectedPeople=["Человек 2"]

2) Выберите другую строку. Результат: "Человек 3" добавлен к selectedPeople.

Список selectedPeople=["Лицо 2", "Лицо 3"]

3) Выберите только одну из этих строк. Результат: "Человек 2" удален из selectedPeople.

Список selectedPeople=["Лицо 3"]


Проблема: по умолчанию PrimeFaces dataTable отменяет выбор других выбранных строк, если я щелкаю одну из них один раз. Не лучший способ предложить пользователям удерживать клавиши Ctrl или Shift для выбора большого количества записей в таблице.


Что я сделал до сих пор: http://pastebin.com/qHvnZPiY



person Rasshu    schedule 29.07.2015    source источник
comment
Почему бы тогда не использовать выбор флажка в таблице данных?   -  person Emil Kaminski    schedule 30.07.2015
comment
Это лучше, так как обходной путь не требуется. :)   -  person Rasshu    schedule 30.07.2015


Ответы (1)


Чтобы избежать отмены выбора, просто используйте атрибут rowSelectMode="add" (но если вы хотите, чтобы он не был выбран, вам нужно использовать ctrl+щелчок)

Решение, которое мы использовали в конце, состоит в том, чтобы поставить rowSelectMode="checkbox", чтобы строка выбиралась только тогда, когда я нажимаю первый столбец <p:column selectionMode="multiple" />

Затем использовал прослушиватели для событий toggleSelect, rowSelectCheckbox и rowUnselectCheckbox.

Источник: www.primefaces.org/docs/guide/ Primefaces_user_guiderowSelectCheckbox2.pdf

person Rasshu    schedule 30.07.2015