Как сделать кнопку редактирования в h: dataTable, чтобы сделать строку редактируемой - PullRequest
1 голос
/ 15 мая 2019

Я получил HtmlDatatable с

  • Одна кнопка Command для редактирования.
  • Одна кнопка Command для сохранения.
  • Один InputText для отображения информации.
    <h:form>            
      <h:dataTable var="entity" value="#{bean.entities}">
        <h:column>
         <f:facet name="header">ColumnA</f:facet>
         <h:commandButton value="edit" actionListenner="#{bean.edit()}" />
         <hcommandButton value="save" actionListenner="#{bean.save(entity)} rendered="false"/>
         <h:inputText value="#{entity.value}"/>
         </h:column>
      </h:dataTable>            
    </h:form>

Я бы хотел, чтобы при нажатии кнопки редактирования CommandButton появилось сохранение CommandButton.Как я могу получить доступ к сохранению CommandButton внутри моего метода edit () из bean-компонента?

  • ЕДИНСТВЕННЫЙ СПОСОБ сделать это - передать clientId с кнопки.
  • ИлиДРУГОЙ ПУТЬ, передавая сам объект вместо этого в качестве параметра EL и работать с ним непосредственно в методе?# {bean.edit (buttonSave)}
    public void edit()
    {
      //TODO get the button save from the same row as the button triggered.

      //TODO switch rendered to true.
    }

1 Ответ

1 голос
/ 15 мая 2019

Не пытайтесь получить доступ к сохранению CommandButton внутри метода edit (). Добавьте логическое значение attriubte, называемое editMode, к вашей сущности и попробуйте передать вашу сущность в ваш метод редактирования, подобный этому

<h:commandButton value="edit" actionListenner="#{bean.edit(entity)}" />

Теперь в вашем методе edit () добавьте вашу сущность в качестве параметра и включите режим редактирования для вашей сущности

public void edit(Entity entity)
{
    entity.setEditMode(true);
}

Теперь с помощью EL можно сделать визуализированный атрибут вашей commandButton для проверки режима редактирования вашей сущности следующим образом:

<h:commandButton value="edit" actionListenner="#{bean.edit(entity)}" rendered="#{!entity.editMode}"/>    
<h:commandButton value="save" actionListenner="#{bean.save(entity)}" rendered="#{entity.editMode}"/>

Так что, если атрибут editMode равен true, теперь вы должны увидеть кнопку сохранения. Так же, как вы можете скрыть кнопку редактирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...