0

selectOneMenuとah:graphicImageがあるjsfファイルがあります。問題は、selectOneMenuを介してonchangeリクエストを送信し、h:graphicImageを再レンダリングして、アクションBeanでブール値を表示および非表示にしたい場合ですが、正しく機能しません。実際に最初に、selectOneMenuを介してアクションを送信すると、ブール値がBeanに正しく設定されているが、reRender値が正しく設定されていないことを非常に注意深く調査します。ページを更新すると、正しく機能します。ページを更新したい場合は、解決できる人なら誰でもselectOneMenu actionlistenerで、ページを更新する方法。詳細については、コードを参照してください。

    <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);         
 }

}

これに関する助けはありがたいです

4

1 に答える 1

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();"/>
    

そもそも問題が発生している理由については、こちらの説明をご覧ください

于 2013-01-18T11:44:26.457 に答える