2012-02-16 2 views
0

Это является продолжением вопрос: 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}"/>&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> 
+0

Я пробовал разные вещи в течение дня, сдавался и спрашивал, затем попробовал что-то еще, и он работает. :) добавление execute = "@ this" в команду removeButton разрешило эту проблему. Я добавлю ответ позже сегодня, я не могу добавить его еще, потому что у меня недостаточно репутации. –

ответ

0

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

Смежные вопросы