JavaScript変数をtrueまたはfalseに設定するAjax呼び出しの後にレンダリングするRichFacesコンポーネントがあります。Seam/RichFaces:JavaScript関数または変数の結果に基づくレンダリング
変数がfalseの場合、パネルをレンダリングしたくありません。この変数(またはJS関数呼び出し)の結果をコンポーネントのレンダリングされた属性に入力する方法はありますか?
JavaScript変数をtrueまたはfalseに設定するAjax呼び出しの後にレンダリングするRichFacesコンポーネントがあります。Seam/RichFaces:JavaScript関数または変数の結果に基づくレンダリング
変数がfalseの場合、パネルをレンダリングしたくありません。この変数(またはJS関数呼び出し)の結果をコンポーネントのレンダリングされた属性に入力する方法はありますか?
Richfacesは、サーバー側でコンポーネントをレンダリングします。したがって、サーバー側に パラメーターを渡す必要があります。これを達成するにはいくつかの方法があります。 ページに非表示の入力を作成し、それをBeanのフラグにリンクします。何かのように、ページで
class YourBean {
private boolean visible = false;
//getter,setter
}
、
<h:selectBooleanCheckbox id="hiddeninput" style="visibility:hidden"
value="#{yourBean.visible}"/>
<rich:component id="compid" rendered="#{yourBean.visible}" />
<a:commandButton onclick="document.getElementById('hiddeninput').checked=true"
reRender="compid"/>
かは、真または偽にフラグを設定する2つのメソッドを作成します。ページで
class YourBean {
private boolean visible = false;
public void makeInvisible() {
visible = false;
}
public void makeVisible() {
visible = true;
}
}
、
<rich:component id="compid" rendered="#{yourBean.visible}" />
<a:commandButton action="#{yourBean.makeInvisible()}" reRender="compid"/>
RichFacesの再レンダリングは、EL式とることができます。
reRender="#{bean.componentsToUpdate}"
ので、別のオプションは、あなたが(入力に基づいて)実行時に決定することができますするかどうかを特定のコンポーネントをレンダリングします。
オプション1: JavaScript/jQueryを使用して、ajaxリクエストのoncomplete属性から表示/非表示を切り替えることができます。
オプション2(より良い):バックエンドアクションのメソッドでブール値のプロパティ値を変更し、その値をレンダリング属性で使用します。