这是我的代码:
<p:imageSwitch widgetVar="switcher" id="manuelSwitcher"
slideshowAuto="false" effect="none">
<ui:repeat value="#{vegetalesMb.images}" var="image"
id="manuelSwitcherImages">
<p:graphicImage id="fotos" value="/Images/#{image}"
alt="Descripción #{image}" title="#{image}">
<p:commandButton action="#{vegetalesMb.buttonBorrarFoto}">
<f:setPropertyActionListener value="#{image}"
target="#{vegetalesMb.image}" />
</p:commandButton>
</p:graphicImage>
</ui:repeat>
</p:imageSwitch>
<p:commandButton type="button" onclick="PF('switcher').previous();"
icon="ui-icon-circle-triangle-w" id="prev" />
<p:commandButton type="button" onclick="PF('switcher').next();"
icon="ui-icon-circle-triangle-e" id="next" />
答案 0 :(得分:1)
我遇到了同样的问题,我解决它的方法是将p:commandButton
和p:graphicImage
标记放在p:panelGrid
标记内。您只需确保更新p:imageSwitch
内的p:commandButton
组件即可。
希望这有帮助!
<p:panelGrid columns="2" styleClass="ui-panelgrid-blank">
<p:commandButton type="button" onclick="PF('switcher').previous();"
icon="ui-icon-circle-triangle-w" id="prev"/>
<p:commandButton type="button" onclick="PF('switcher').next();"
icon="ui-icon-circle-triangle-e" id="next"/>
</p:panelGrid>
<p:imageSwitch effect="none" widgetVar="switcher" id="manualSwitcher"
slideshowAuto="false">
<ui:repeat value="#{myController.imageList}" var="image" id="manualSwitcherImages">
<p:panelGrid columns="1" styleClass="ui-panelgrid-blank">
<p:commandButton action="#{myController.removeImage(image)}" update=":mainForm:manualSwitcher" icon="fa fa-remove"/>
<p:graphicImage value="#{image.stream}" cache="false" title="#{image.label}" stream="false" width="400" height="240"/>
</p:panelGrid>
</ui:repeat>
</p:imageSwitch>