试图从p:imgswitch删除图像

时间:2016-10-26 23:12:16

标签: jsf primefaces

抱歉,我会说一点英语。 我的问题: 我创建了一个p:imgswitch。我想在每个图像上附加一个删除按钮,所以我添加了它,但它不起作用!我试图将commandbutton放在commanditon里面的graphicimage和graphicimage中,或者分开但我实现了相同的结果。如果我点击下一个按钮,它首先显示图像,当我再次点击下一个时,显示删除按钮。每次按下一个组件或上一个按钮而不是两个组件同时显示。如果你能帮助我,我将非常感激,谢谢!!!!!!!

这是我的代码:

           <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" /> 

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我解决它的方法是将p:commandButtonp: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>