1

Primefaces でダイアログを更新するには、どのメソッドを使用する必要があるのか​​ 疑問に思っていました。これら 2 つの実装は同等ですか?

第 1 の方法: ダイアログで動的属性を使用する

<h:form>
    <p:commandButton onclick="dialog.show();"/>
</h:form>

<p:dialog widgetVar="dialog" dynamic="true">
    <h:form id="dialogForm">
        <h:outputText value="#{bean.name}"/>
    </h:form> 
</p:dialog>

2 番目の方法: commandButton でダイアログを手動で更新する

<h:form>
    <p:commandButton onclick="dialog.show();" update="dialogForm"/>
</h:form>

<p:dialog id="dialog" widgetVar="dialog">
    <h:form id="dialogForm">
        <h:outputText value="#{bean.name}"/>
    </h:form>
</p:dialog>

いつどの方法を使用する必要がありますか?

4

2 に答える 2

1

ダイアログがまったくロードされていない場合、両方の方法で同じ結果が得られます。最初の方法は、ダイアログをポップアップしようとしますが、コンテンツがまだロードされていないことに気付きます。したがって、コンテンツは対応する Bean から取得されます。2 番目の方法は、コンテンツが Bean からロードされた後にダイアログを開きます。

違いは、ダイアログが少なくとも1 回開かれた後に存在します。初めて。2 番目の方法は、ダイアログが開いたときにコンテンツが常に最新であることを保証します。

于 2013-08-08T16:17:55.803 に答える
0

VDL から --

動的モードでは、ページの読み込み時ではなく、表示される前にダイアログがコンテンツをフェッチできるため、最初のページの読み込み時間を短縮できます。デフォルトは false です。

2 番目のオプションは、ページの読み込み時にコンテンツを取得し、onclick で更新するようです。同じ結果を得るために 2 倍の作業を行います。

于 2013-08-08T15:54:28.933 に答える