Мне нужно заблокировать некоторые флажки когда достигнут предел 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;
}
На самом деле все это прекрасно работает:
достигните 20 предела, затем выполните нумерацию страниц:
Значение 21 отключено и не может быть проверено (отлично)
Но, если я сниму галочку с одного из первых 20 , то проверим одиночное значение нумерации страниц У меня есть одно значение из моих первых 20 отключено (ок):
Если я сниму галочку с другого значения из этих первых 20 значений, поведение, которое я ожидаю, будет:
Теперь можно отметить заблокированный флажок, всего можно установить 2 флажка
Но у меня есть то, что флажок заблокирован, он все еще заблокирован :
disabledSelection прекрасно работает только при разбиении на страницы .
Я не нашел способа обновить флажок какого-либо способа добиться желаемого поведения.
Если кто-нибудь знает, как обновить или обновить таблица или disabledSelection Я буду очень благодарен. Привет.