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 回答