JSF 2.0: динамическое удаление компонентов - PullRequest
2 голосов
/ 11 февраля 2011

Как продолжение к ответу на вопрос о динамическом добавлении компонентов в JSF 2.0 (см. Ссылку ниже), мне нравится подход использования dataTable, но как насчет удаления одного из добавленных компонентов?1003 * Как динамически добавлять компоненты JSF

1 Ответ

1 голос
/ 12 февраля 2011

Основываясь на фрагменте кода в другом вопросе , который вы связали, необходимо внести следующие изменения:

  1. Добавить столбец с кнопкой удаления вtable.

    <h:column><h:commandButton value="delete" action="#{bean.delete}" /></h:column>
    
  2. Добавьте свойство DataModel<Item> к бобу и оберните список элементов в нем, чтобы вы могли получить таблицустрока, в которой была нажата кнопка.

    private DataModel<Item> model = new ListDataModel<Item>(items);
    

    (не забывайте о получателе, обратите внимание, что вы также можете создать его экземпляр в конструкторе бина или постконструкторе)

  3. Используйте это вместо таблицы данных.

    <h:dataTable value="#{bean.model}" var="item">
    
  4. Добавьте метод удаления к компоненту.

    public void delete() {
        items.remove(model.getRowData());
    }
    

См. Также:

...