【问题标题】:Primefaces InputText stores previous value when present inside the Primefaces DialogPrimefaces InputText 在出现在 Primefaces 对话框中时存储先前的值
【发布时间】:2021-04-27 11:30:24
【问题描述】:

我在 Dialog 中有一个 InputText:

<p:dialog header="Demo Header"appendTo="@(body)"
            widgetVar="sectionDialog" id="section_Dialog"
            modal="true">
            
            <h:panelGroup id="myPanel">

                <h:panelGrid columns="4">

                    <h:outputLabel value="Count: "/>

                    <pe:keyFilter mask="num" for="count" />
                    <p:inputText id="count"
                        value="#{myBean.countValue}" converter="spaceConverter">
                    </p:inputText>

                    <p:commandButton id="btnId" process="@this"
                        update="secondPanel" value="ADD" icon="ui-icon-check"
                        action="#{myBean.generateDataTableBasedOnCount()}" ajax="true"
                        partialSubmit="true">
                    </p:commandButton>

                </h:panelGrid>

            </h:panelGroup>


            <h:panelGroup style="border:0" id="secondPanel">
                    ...// data table generated based on Input Count.
            </h:panelGroup> 

</p:dialog>

如果我将 InputText 和 Button 保留在对话框之外,它就像一个魅力。 但是当我将它们保存在 Dialog 中时,myBean.countValue 总是存储之前的输入值。 当我刷新页面并输入新值时,旧值被存储在 bean 中。

我在这里错过了什么?


PrimeFaces:5.3

PrimeFaces 扩展:4.0.0

JSF:2.2.8


【问题讨论】:

    标签: jsf primefaces primefaces-extensions


    【解决方案1】:

    您需要在打开对话框之前重置对话框的输入。

    见:https://www.primefaces.org/showcase/ui/misc/resetInput.xhtml

    所以在打开对话框的按钮上...最好重置 FORM,但我没有在上面的示例代码中看到 h:form。

     <p:commandButton value="Open Dialog" update="section_Dialog">
            <p:resetInput target="section_Dialog"/>
    </p:commandButton
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      相关资源
      最近更新 更多