0

ダイアログを閉じるときに、なぜsetDataTransferRangeInSeconds()メソッドが呼び出されるのですか?通常、ダイアログを閉じるときに呼び出されなかった可能性がありますか?

    <h:form>
        <p:dialog header="Service Alarm Options" 
                widgetVar="updatedlg"
                closable="true" 
                minWidth="500"
                 minHeight="1000"
                resizable="false"
                dynamic="false" 
                >
            <h:panelGrid id="servicedetails">
                <p:commandButton value="Save"
                    action="#{alarmBean.updateServiceOptions}" />
                <p:commandButton value="#{messages.exit}" icon="ui-icon-close"
                    style="valign:bottom;float:right;padding-right:20px"
                    oncomplete="updatedlg.hide();">
                </p:commandButton>
                <p:inputText
                    value="#{alarmBean.selectedDocument.dataTransferRangeInSeconds}"></p:inputText>
            </h:panelGrid>

        </p:dialog>
    </h:form>

更新しました。

    <p:dialog header="Service Alarm Options" widgetVar="updatedlg"
        closable="true" minWidth="500" minHeight="1000" resizable="false"
        dynamic="false">
        <h:form>
            <h:panelGrid id="servicedetails">
                <p:commandButton value="Save"
                    action="#{alarmBean.selectedDocument.saveNewFeatures}" />
                <p:commandButton value="#{messages.exit}" icon="ui-icon-close"
                    style="valign:bottom;float:right;padding-right:20px"
                    onclick="updatedlg.hide();" type="button" />
                <p:inputText
                    value="#{alarmBean.selectedDocument.dataTransferRangeInSeconds}"></p:inputText>
            </h:panelGrid>
        </h:form>
    </p:dialog>
4

2 に答える 2

0

通常はそうではありませんが、フォーム内にダイアログを配置することは正しくありません。コードを並べ替えて、フォームをダイアログ内に配置します。

<p:dialog>
  <h:form>
      <!-- your form -->
  </h:form>
</p:dialog>

また、終了ボタンはAJAXボタン(Primefacesのデフォルト)であり、AJAXリクエストを送信し、その後、ダイアログを非表示にします。その要求の間に、入力からの値が送信され、Beanに設定されます。ボタンを次のように変更します。

<p:commandButton value="#{messages.exit}" icon="ui-icon-close"
                style="valign:bottom;float:right;padding-right:20px"
                onclick="updatedlg.hide();" type="button"/>

これにより、ダイアログを閉じるためのjavascriptを呼び出すだけのプッシュボタンが作成されます。

于 2013-01-30T22:02:48.880 に答える
0
<p:dialog header="Service Alarm Options" widgetVar="updatedlg"
        closable="false" minWidth="500" minHeight="1000" resizable="false"
        dynamic="false">
        <h:form>
            <h:panelGrid id="servicedetails">
                <p:commandButton value="Save"
                    action="#{alarmBean.selectedDocument.saveNewFeatures}" />
                <p:commandButton value="#{messages.exit}" icon="ui-icon-close"
                    style="valign:bottom;float:right;padding-right:20px"
                    update="@form"
                    actionListener="#{alarmBean.selectedDocument.resetFeatures}"
                    oncomplete="updatedlg.hide();">                     
                </p:commandButton>              
                <p:inputText
                    value="#{alarmBean.selectedDocument.dataTransferRangeInSeconds}"></p:inputText>
            </h:panelGrid>
        </h:form>
    </p:dialog>
于 2013-01-30T22:41:25.493 に答える