2013-01-18 38 views
0

我有一個jsf文件,我有selectOneMenu和ah:graphicImage.Now問題是當我通過selectOneMenu發送onchange請求並且想要reRender h:graphicImage並且想要在操作中顯示和隱藏布爾值bean.But不能正常工作。 Actully首先,我非常仔細地調查它,當我通過selectOneMenu發送操作時,布爾值在bean中正確設置,但沒有正確設置reRender值。如果我刷新頁面,那麼它可以正常工作。任何人,我可以解決它,如果我想刷新頁面在selectOneMenu用於ActionListener的話怎麼我刷新page.My代碼是在這裏更多的細節h:graphicImage不reRender

<h:selectOneMenu id="stageListID" value="#{mnpBean.stageList.defaultValue}" > 
<f:selectItems value="#{mnpBean.stageList.values}"/> 
<a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="addBtn1" oncomplete="resetViewConfigs();"/> 
</h:selectOneMenu> 

代碼grphic圖像

<h:graphicImage id="addBtn1" url="" rendered="#{mnpBean.showAddButton}" style="cursor:pointer"> 
<a4j:support id="addRowBtn1" event="onclick" actionListener="#{mnpAction.addMultiNoRingFence}"/> 
</h:graphicImage> 

豆代碼在這裏

public void onStageListChangeAction(ActionEvent ae) { 
mnpBean = getMNPBean(); 
if ("10".equals(mnpBean.getStatusList().getDefaultValue()) &&  "010".equals(mnpBean.getStageList().getDefaultValue())) { 
mnpBean.setShowAddButton(false);   
}else{ 
mnpBean.setShowAddButton(true);   
} 

} 

有關的任何幫助這個欣賞

+0

@BalusC請在這裏建議的解決方案 – seeker

+0

'@ nickname'評論,回覆,如果有問題的人沒有編輯不工作/事先評論了這個帖子只是等到他們看到這個問題:) – BalusC

+0

@BalusC好吧現在得到它:)無論如何感謝這也:) :) – seeker

回答

2

你應該做的:

  1. 包裝你<h:graphicImage/>在容器像<h:panelGrid/>

    <a4j:outputPanel ajaxRendered="true" layout="none" id="imageContainer"> 
    <h:graphicImage id="addBtn1" url="" rendered="#{mnpBean.showAddButton}" style="cursor:pointer"> 
        <a4j:support id="addRowBtn1" event="onclick" actionListener="#{mnpAction.addMultiNoRingFence}"/> 
    </h:graphicImage> 
    <a4j:outputPanel/> 
    
  2. 使用容器的id作爲的目標reRender

    <a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="imageContainer" oncomplete="resetViewConfigs();"/> 
    

爲什麼這個問題正在發生的事情放在第一位的原因,見解釋here

+0

感謝很多人:)其工作正常:) :) :) – seeker

+0

@RanaMansoor,歡迎首席 – kolossus