Это является продолжением вопрос: Dynamically updating a4j:repeat using data from formpanelgroup на основе ArrayList - редактирование ArrayList и обновление panelgroup изнутри
теперь у меня есть 2 выбирает и рядом с ними CommandButton. Когда кнопка нажата, ul-list под выборами обновляется строкой, содержащей значения обоих вариантов и кнопку удаления.
Когда я нажимаю кнопку «Удалить», я хочу удалить строку (имя + право использования) со стороны компонента и из представления. Пара правильно удаляется из arraylist со стороны bean, но 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}"/>
<h:outputText value="#{permission.permissionMode}"/>
<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>
Я пробовал разные вещи в течение дня, сдавался и спрашивал, затем попробовал что-то еще, и он работает. :) добавление execute = "@ this" в команду removeButton разрешило эту проблему. Я добавлю ответ позже сегодня, я не могу добавить его еще, потому что у меня недостаточно репутации. –