代码之家  ›  专栏  ›  技术社区  ›  Kalle Richter

如果p:commandLink触发器具有ajaxupdate和listener属性,如何能够多次显示p:slideMenu?

  •  1
  • Kalle Richter  · 技术社区  · 6 年前

    我目前的做法是 p:slideMenu menuTrigger 显示菜单和所有进一步的单击(在第一次隐藏之后,例如通过单击 menuHideLabel )导致菜单不显示:

    <h:form id="mainForm">
        <p:commandLink id="menuTrigger"
                value="Open slide menu"
                style="background: #{backingBean0.background};">
            <p:ajax listener="#{backingBean0.listener0()}"
                    update="menuTrigger"/>
        </p:commandLink>
        <p:slideMenu id="slideMenu"
                trigger="menuTrigger"
                overlay="true"
                triggerEvent="click"
                my="left top"
                at="left bottom"
                style="width:180px;">
            <p:menuitem id="menuItem1"
                    value="Menu item 1"/>
        </p:slideMenu>
        <p:outputLabel id="menuHideLabel"
                value="Hide slide menu"/>
    </h:form>
    

    梅努特里格 单击:

    @Named
    @ViewScoped
    public class BackingBean0 implements Serializable {
        private static final long serialVersionUID = 1L;
        private String background = "";
    
        public void listener0() {
            System.out.println("listener0");
            background = "green";
        }
    
        public String getBackground() {
            return background;
        }
    
        public void setBackground(String background) {
            this.background = background;
        }
    }
    

    https://gitlab.com/krichter/primefaces-open-slide-menu-with-selenium 带输出的再生产问题与Arquillian在 https://gitlab.com/krichter/primefaces-open-slide-menu-with-selenium/-/jobs/85986586 . 它不包含以上MCVE的更多信息,可用于促进当地对该问题的调查。

    我用的是PrimeFaces6.2。

    0 回复  |  直到 6 年前