PrimeFaces对话框不使用我在视图

时间:2017-07-25 14:46:24

标签: jsf primefaces el

我的视图包含以下字段:

<p:selectOneMenu style="width:40px" value="#{capacityFamilyBean.capacityFamily.bottleneck}">
    <f:selectItems value="#{capacityFamilyBean.availableCapFamilyBottlenecks()}"/>
</p:selectOneMenu>

<p:inputText id="capacityFamilyName" binding="#{capacityFamilyName}" style="margin-left:20px" value="#{capacityFamilyBean.capacityFamily.name}">
    <p:ajax event="change" update="newBundleButton"/>
</p:inputText>

<p:commandButton id="newBundleButton" icon="ui-icon-plus" disabled="#{empty capacityFamilyName.value}" value="${msgs.New}" oncomplete="PF('capacityFamilyDialog').show();"/>

您可以看到值属性为{capacityFamilyBean.capacityFamily.prprty}

capacityFamilyDialog使用相同的属性,但它们未预先填充

<p:selectOneMenu value="#{capacityFamilyBean.capacityFamily.bottleneck}">
    <f:selectItems value="#{capacityFamilyBean.availableCapFamilyBottlenecks()}" />
</p:selectOneMenu>

<p:inputText id="capacityFamilyName" style="margin-left:20px" value="#{capacityFamilyBean.capacityFamily.name}"/>

我假设他们引用了不同的capacityFamily对象,但我该如何反击呢?

2 个答案:

答案 0 :(得分:0)

对话框随页面一起提供。所以它完全是空的。

oncomplete="PF('capacityFamilyDialog').show();"

是纯粹的javascript,只显示这个空的弹出窗口。如果您想要一个包含实际值的对话框,则必须在update之类的ajax调用中commandButton

<p:commandButton value="${msgs.New}" update="capacityFamilyDialog_ID" oncomplete="PF('capacityFamilyDialog').show();"/>

答案 1 :(得分:0)

单击按钮时对话功能正常。我认为你应该更新对话框的ID。

JSF代码

 <p:commandButton id="impBtb"
     process="@this" icon="ui-icon-plus" disabled="#{empty capacityFamilyName.value}" 
      value="${msgs.New}" oncomplete="PF('capacityFamilyDialog').show();" update="@form:capacityFamilyDialog">
</p:commandButton>

因此,您可能必须从命令按钮执行ajax调用以更新对话框。

希望它有所帮助!!