1

アップロード ダイアログを表示するボタンを作成しようとしています。これを達成しようとしている方法は、次のようになります。

<h:outputText value="Click Me" id="testit">
  <a4j:support reRender="hideme" event="onclick" action="#{actions.switchTestRendered}"/>
</h:outputText>
<h:outputText id="hideme" value="back" rendered="#{actions.testRendered}"/>

バッキング Bean 内のコード:

private boolean testRendered = false;
public String switchTestRendered(){
 setTestRendered(!isTestRendered());
 System.out.println("Current Status:"+isTestRendered());
 return "success";
}

public void setTestRendered(boolean testRendered) {
  this.testRendered = testRendered;
}

public boolean isTestRendered() {
  return testRendered;
}

「クリックしてください」ラベルを押すと、switchTestRendered が実行されていることがわかりますが、「hideme」コンポーネントは表示されません。

助言がありますか?ありがとう!

4

2 に答える 2

1

とった。非表示/表示しようとしている要素の親を再レンダリングする必要があります。言い換えると:

<a4j:support reRender="hideme" event="onclick" action="#{actions.switchTestRendered}"/>

する必要があります:

<a4j:support reRender="father_of_hideme" event="onclick" action="#{actions.switchTestRendered}"/>

ありがとう!ベン。

于 2010-05-24T10:58:37.617 に答える
0

コードから、「クリックして」の後、「非表示」コンポーネントレンダラーが更新されていないことがわかります。あなたは理由を見つけなければなりません

于 2010-05-24T11:00:35.043 に答える