当a4j:commandbutton按下不起作用时删除<img/>

时间:2014-06-10 15:56:48

标签: richfaces ajax4jsf

我有两个a4j:outputPanels,如果支持bean上的imageSet布尔值返回false,则不应显示。

另一个outputPanel有一个a4j:commandButton,动作调用removeImage设置了imageSet = false。但是,当它重新显示image时,仍会显示图像。是否可以将图像存储在缓存中并仍然显示它?

图像仍然位于src所指向的位置,我只是不希望在按下此按钮时显示该图像。有任何想法吗?

       <a4j:outputPanel id ="image"
                             rendered="#{userInfo.imageSet}">
                    <img id="signatureImage"
                         src="/document/signature?imageId=#{userInfo.imageId}"
                         alt="No Image"/>
                    <br/>
        </a4j:outputPanel>

        <a4j:outputPanel id="Display">                                          

            <a4j:commandButton id="removeButton"
                           action="#{userInfo.removeImage}"
                           immediate ="true"
                           value="Remove Uploaded Signature"
                           disabled="#{!userInfo.stampSet}"
                           rendered="#{userInfo.editMode}"
                           onclick="this.disabled=true"
                           ajaxSingle="true"
                           styleClass="delete-button"
                           reRender="image">
            </a4j:commandButton>

            [Other things here, not relevant] 

        </a4j:outputPanel>

1 个答案:

答案 0 :(得分:0)

将它全部放在panelGroup中。不渲染outputPanel会使得没有img标记可以从屏幕上更新/删除,而是将图像留在那里。

<a4j:outputPanel id ="image">
  <h:panelGroup rendered="#{userInfo.stampSet}}">
       <img id="signatureImage"
            src="/document/signature?signatureId=#{userInfo.userStampId}"
            alt="No Image"/>
        <br/>
  </h:panelGroup>
 </a4j:outputPanel>