группа панелей на основе arrayList - редактирование массива и обновление группы панелей изнутри - PullRequest
0 голосов
/ 16 февраля 2012

Это дополнительный вопрос к: Динамическому обновлению a4j: повторите, используя данные из формы

Теперь у меня есть 2 выбора и рядом с ними командная кнопка. Когда кнопка нажата, ul-list под selects обновляется строкой, включающей значения обоих select и кнопку удаления.

Когда я нажимаю кнопку удаления, я хочу удалить линию (пара имя + использование прав) со стороны компонента и из представления. Пара правильно удалена из массива на стороне компонента, но ul-list не обновляется. Когда я нажимаю F5, элемент удаляется из списка.

Как мне снова визуализировать группу панелей, когда я нажимаю кнопку удаления?

<h:selectOneMenu value="#{assetUploadForm.currentGroupName}" valueChangeListener="#{assetUploadForm.groupNameChanged}">
   <f:selectItems value="#{assetUploadForm.groupNames}" />
   <a4j:ajax event="valueChange" render="second" execute="@this" />
</h:selectOneMenu>

<h:selectOneMenu value="#{assetUploadForm.currentGroupRW}" valueChangeListener="#{assetUploadForm.groupRWChanged}">
   <f:selectItem itemValue="R" itemLabel="Read"/>
   <f:selectItem itemValue="W" itemLabel="Write"/>
   <a4j:ajax event="valueChange" render="second" execute="@this" />
</h:selectOneMenu>

<a4j:commandButton action="#{assetUploadForm.addGroupRights}" value="add group" render="groupList"/>
<h:panelGroup id="groupList">
<ul>
  <a4j:repeat value="#{assetUploadForm.groupPermissions}" var="permission">
    <li>
      <h:outputText value="#{permission.group.groupName}"/>&nbsp;&nbsp;
      <h:outputText value="#{permission.permissionMode}"/>&nbsp;&nbsp;
      <a4j:commandButton action="#{assetUploadForm.removeGroupPermission}" render="groupList" value="remove">
        <a4j:param value="#{permission.group.groupName}" assignTo="#{assetUploadForm.permissionToRemove}"/>
      </a4j:commandButton>                      
    </li>
  </a4j:repeat> 
</ul>
</h:panelGroup>

1 Ответ

0 голосов
/ 09 марта 2012

добавление execute = "@ this" к команде удаления. Кнопка решила эту проблему.

...