У меня есть <ice:dataTable>
, и я хочу добавить флажок для каждой строки.Я попытался добавить <ice:selectManyCheckbox>
, но в нем отображается пустой столбец, а флажки не отображаются.
<ice:selectManyCheckbox id="customTransChbx" partialSubmit="true">
<f:selectItems id="SlctLangItms" value="#{employee.s}" />
</ice:selectManyCheckbox>
<ice:dataTable id="employeedatatable" value="#{employee.model}" var="emp" rows="5">
<ice:column>
<ice:checkbox for="customTransChbx" index="#{emp.id}" rendered="true" />
</ice:column>
</ice:dataTable>
Как выбрать несколько строк по флажкам в <ice:dataTable>
?
Обновление : я также пытался <ice:selectBooleanCheckbox>
с Map
:
public class Employee {
private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();
public void preRender(ComponentSystemEvent event) throws Exception {
List<Employee> list = employeeService.getEmployees();
for (Employee employee : list)
checked.put(employee.getId(), false);
}
}
с
<ice:dataTable id="employeedatatable" value="#{employee.model}" var="emp" rows="5">
<ice:column>
<ice:selectBooleanCheckbox value="#{employee.checked[emp.id]}" />
</ice:column>
</ice:dataTable>
При попытке получить проверенныйсписок в методе действия, все значения на карте false
, даже выбранные.Почему проверенные значения не заносятся в Map
?
ОБНОВЛЕНИЕ2: я попробовал старый простой HTML-способ, как показано ниже:
, определяя флажок в качестве ввода:
<input type="checkbox" name="toDelete" value="#{emp.id}" />
получение проверенных значений в методе вспомогательного компонента следующим образом:
HttpServletRequest request = (HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext().getRequest();
String[] checkedValues = request.getParameterValues("toDelete");
проблема в том, что массив checkedValues всегда равен нулю?