【问题标题】:primefaces using components in menuitemprimefaces 使用 menuitem 中的组件
【发布时间】:2015-01-08 15:52:31
【问题描述】:

我想在 p:menuitem 中使用其他 primefaces 组件。组件显示在页面中,但 actionlistener 不起作用,并且 inputtext 的值不会推送到 bean 的 value1 属性。有什么办法可以解决这个问题吗?

<p:commandButton id="dynaButton" value="Search" type="button" icon="ui-icon-extlink"/>
<p:slideMenu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:180px">
    <p:submenu label="Search">
        <p:menuitem>
            <p:outputLabel value="Search by Id" />
            <p:inputText value="#{bean.value1}" />
            <p:commandButton value="save" actionListener="#{bean.method1}"  />
        </p:menuitem>
    </p:submenu>
    <p:submenu label="Search By Product">
        <p:menuitem value="Delete"  ajax="false" icon="ui-icon-close"/>
    </p:submenu>
    <p:submenu label="Location" icon="ui-icon-extlink">
        <p:submenu label="Prime Links">
            <p:menuitem value="Prime" url="http://www.prime.com.tr" />
            <p:menuitem value="PrimeFaces" url="http://www.primefaces.org" />
        </p:submenu>
        <p:menuitem value="Mobile" />
    </p:submenu>
</p:slideMenu>

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    尝试将您的代码更改为以下内容:

            <p:menuitem>
                <p:outputLabel value="Search by Id" />
                <p:inputText id="inputField" value="#{bean.value1}" />
                <p:commandButton process="inputField @this" value="save" actionListener="#{bean.method1}"  />
            </p:menuitem>
    

    也检查这些答案:

    Why to add process=“@this” explicitly to p:commandButton to get action invoked?

    Understanding process and update attributes of PrimeFaces

    【讨论】:

    • 感谢您的回答。在此更改之后,actionlistener 起作用,但值始终为空。它的值不会推到 bean。
    【解决方案2】:

    您错过了update 属性。

    注意menuitems可以直接处理,但不能直接更新,需要更新整个menu

    <p:slideMenu id="menu" ...>
        <p:submenu label="Search">
            <p:menuitem id="item">
                <p:outputLabel value="Search by Id" />
                <p:inputText value="#{bean.value1}" />
                <p:commandButton value="save" actionListener="#{bean.method1}" process="item" update="menu" />
                <h:outputText value="#{bean.value1}" />
            </p:menuitem>
        </p:submenu>
    </p:slideMenu>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 2013-05-10
      • 1970-01-01
      • 2012-08-16
      • 2016-09-27
      相关资源
      最近更新 更多