今日、コンポーネントの値が変更されたときに、バッキングBeanのメソッドを呼び出すために、今日私は大部分の時間がかかりました。私のコンポーネントが<p:dialog>
の外にある場合はすべて正常に動作しますが、ダイアログ内でネストするとサーバー側は決して起こりません。もともと私は<p:calendar>
コントロールで作業していましたが、単純なinputTextでも動作しないことに気付きました。次の例では動作します:p:ダイアログ内からajaxイベントを発生させる方法
<h:panelGrid columns="3">
<h:outputText value="Start"/>
<p:inputText id="startOfRange" value="#{myBean.startRange}" valueChangeListener="#{myBean.startChanged}">
<p:ajax event="change" update="play"/>
</p:inputText>
<h:outputText id="play" style="margin-left: 10px;" value="#{myBean.startRange}"/>
</h:panelGrid>
私のバッキングBeanのメソッドは、以下のメソッドが呼び出されることは決してありませんように包まれたときに、この方法は、しかし、のinputTextのうちタブの後に呼び出される
public void startChanged(ValueChangeEvent event) { }
次のようになります。
<p:dialog widgetVar="efDlg" zindex="10" appendToBody="true" header="Create Custom Date Range"
modal="true" height="375" width="450" resizable="false" closable="false" >
<h:panelGrid columns="4">
<h:outputText value="Start"/>
<p:inputText id="startOfRange" value="#{myBean.startRange}" valueChangeListener="#{myBean.startChanged}">
<p:ajax event="change" update="play"/>
</p:inputText>
<h:outputText id="play" style="margin-left: 10px;" value="#{myBean.startRange}"/>
<p:inputText id="endOfRange" value="#{myBean.endRange}" valueChangeListener="#{myBean.endChanged}"/>
</h:panelGrid>
<div class="customRangeButtons">
<span>
<p:commandButton value="Cancel" onstart="efDlg.hide();" actionListener="#{myBean.cancelCustomDateRange}" update="pGraphs"/>
</span>
<span style="margin-left: 300px;">
<p:commandButton value="Ok" type="submit" onstart="efDlg.hide();" action="#{myBean.saveCustomDateRange()}" update="pGraphs"/>
</span>
</div>
</p:dialog>
注意Mojarra 2.1.0でPrimeface 2.2.1を使用しています。値が変更されたときにstartChangedメソッドを呼び出すことができない理由は何ですか?
回避策として、私はp:ダイアログを切り替え、手動でjQueryダイアログを作成しました。それはうまくいきます。 –
これは賢明な選択肢です。 2.2.1が安定版であっても、それは対話コンポーネントと一緒に来る遠い方法を持っています。これらは、ダイアログ内に含まれている場合、特定のコンポーネントビヘイビアが異なるか存在しない共通のテーマです。私が集めたことから、基本的なYUIダイアログが物理的にDOM要素をフォームに出し入れする方法と関係しています。 –
私は ''に大きな問題を抱えています。私はそれが ''を使用するFaceletページでうまく動かないと思います。レイアウトを使用しているかどうかはわかりません。私は彼らが将来のリリースでダイアログを安定させることを望んでいます。 –