Как добавить ice: selectManyCheckbox в ice: dataTable? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть <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 ​​всегда равен нулю?

1 Ответ

0 голосов
/ 24 ноября 2011

, пожалуйста, убедитесь, что datatable и кнопка находятся в одной форме .

...