Primefaces Datatable отключен Обновление выбора по чеку - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужно заблокировать некоторые флажки когда достигнут предел 20 флажков , выбранных на моем Primefaces Datatable , если Флажки меньше 20, чем я Разблокировать Флажки

Это мой код:

На моем Datatable:

disabledSelection="#{trackingController.selectedVehicles.size() ge 20 and trackingController.checkboxChecked[vehicle.vehicleId] eq false}"

<p:column selectionMode="multiple" style="width:16px;text-align:center"/>
<p:column visible="false">
    <p:outputLabel id="mapCol" styleClass="mapCol" value="#{trackingController.selectedValue(vehicle.vehicleId)}" />
</p:column>

На моем контроллере:

private Map<Long,Boolean> checkboxChecked = new HashMap<Long,Boolean>();

/*Some method when check*/
checkboxChecked.replace(vehicleEntity.getVehicleId(),true);

/*Some method when uncheck*/
checkboxChecked.replace(vehicleEntity.getVehicleId(),false);

/*To get the actual boolean of the check*/
public boolean selectedValue(long vehicleId){
    Boolean res = checkboxChecked.get(vehicleId);
    return res;
}

На самом деле все это прекрасно работает:

enter image description here

достигните 20 предела, затем выполните нумерацию страниц:

enter image description here

Значение 21 отключено и не может быть проверено (отлично) Но, если я сниму галочку с одного из первых 20 , то проверим одиночное значение нумерации страниц У меня есть одно значение из моих первых 20 отключено (ок):

enter image description here

Если я сниму галочку с другого значения из этих первых 20 значений, поведение, которое я ожидаю, будет:

Теперь можно отметить заблокированный флажок, всего можно установить 2 флажка

Но у меня есть то, что флажок заблокирован, он все еще заблокирован :

enter image description here

disabledSelection прекрасно работает только при разбиении на страницы . Я не нашел способа обновить флажок какого-либо способа добиться желаемого поведения.

Если кто-нибудь знает, как обновить или обновить таблица или disabledSelection Я буду очень благодарен. Привет.

1 Ответ

0 голосов
/ 08 ноября 2018

A может попытаться добавить p:ajax как дочерние элементы p:dataTable, обновляя таблицу для событий rowSelect, rowUnselect и toggleSelect:

<p:dataTable ...>
  <p:ajax event="rowSelect" process="@this" update="@this"/>
  <p:ajax event="rowUnselect" process="@this" update="@this"/>
  <p:ajax event="toggleSelect" process="@this" update="@this"/>
...
</p:dataTable>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...