1

Richfaces のポップアップ メニューを理解しようとしています。私は次のことをしようとしています: テキストボックスとボタンがあります。テキスト ボックスにテキストを書き込み、書き込まれたテキストの値が「ポップアップ」の場合、ポップアップ メニューを呼び出したいと考えています。コードは次のとおりです。

 <h:form>
        <h:inputText value="#{popupCall.text}"></h:inputText>
        <a4j:commandButton action="#{popupCall.showpopup()}" onclick="if (#{popupCall.showpopup()}) #{rich:component('popup')}.show();">
        </a4j:commandButton>

    </h:form>

    <rich:popupPanel id="popup" modal="false" autosized="true" resizeable="false">
        <f:facet name="header">
            <h:outputText value="Popup panel" />
        </f:facet>
        <f:facet name="controls">
            <h:outputLink value="#" onclick="#{rich:component('popup')}.hide();
                return false;">
                X
            </h:outputLink>
        </f:facet>

    </rich:popupPanel>

そして豆:

@ManagedBean (name="popupCall")
@VievScoped
public class PopupCall {

private String text;

public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}
public PopupCall() {
}

public void checkText(){
    if(text.equals("popup")){
        //CALL POPUP MENU
    }
}

public boolean showpopup(){
    if(text!=null && text.equals("popup"))
        return true;
    else
        return false;
}

}

「if(#{popupCall.showpopup()})」を onclick メソッド内に配置しないと、ボタンが押されたときに常に呼び出されますが、showpopup() メソッドが true を返してもポップアップは表示されません。また、showpopup() メソッド内で、return true と書くだけで、onclick 内の if ステートメントが機能しますが、現在は機能しません。誰でもこれで私を助けることができますか?ありがとう

4

1 に答える 1

2

あなたのケースでは、いくつかのビジネスロジックを実行した後に表示したいので、oncomplete代わりに使用したいと考えています。私が変わったときonclick<rich:popupPanel>

onclick="if (#{popupCall.showpopup()}) #{rich:component('popup')}.show();"

oncomplete="if (#{popupCall.showpopup()}) #{rich:component('popup')}.show();"

ポップアップが表示されました。こちらも要注意

action="#{popupCall.showpopup()}"

ナビゲーションに は(または)がaction必要ですが、が返されているため、修正する必要があることに注意してください。Stringnullshowpopup()boolean

これらのリンクが役立つことがわかりました (最初のリンクについては、投票数が最も多かったリンクが気に入りました)。

Primefaces onclick と onsuccess の違い

p:commandButton onclick内のEL式は、ajaxリクエストで更新/再レンダリングされませんか?

于 2013-07-19T18:45:34.180 に答える