当前位置: 首页 > 知识库问答 >
问题:

以编程方式折叠或展开p:accordionPanel

鄢修德
2023-03-14

>

  • 单击“加载”按钮后,如果设置了任何一个textfield,则“手风琴面板”筛选器将展开。

    点击“加载”按钮后,如果没有设置所有文本字段,那么“手风琴面板”过滤器将会折叠。

    我已经通过手风琴面板的primefaces文档,但没有发现它的帮助。http://www.primefaces.org/docs/vdl/3.5/primefaces-p/accordionpanel.html

    
        package com.pk.test;
    
        import javax.faces.bean.ManagedBean;
    
        @ManagedBean(name="testBean")
        public class AccordionTestBean {
    
            private String name;
    
            private String semester;
    
            private String age;
    
            private Boolean checkNameTextField = false;
    
            public void save(){
                System.out.println("Close Filter If any one field of form is set");
                System.out.println("Name: "+getName());
                System.out.println("Age: "+getAge());
                System.out.println("Semester: "+getSemester());
                if(getName()!= null){
                    setCheckNameTextField(true);
        //if name textfield is set to a value, on save click filter will not collapse or close
                }
                else
                    setCheckNameTextField(false);
        //if name textfield is set to a value, on save click filter will collapse
    
            }
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public String getSemester() {
                return semester;
            }
    
            public void setSemester(String semester) {
                this.semester = semester;
            }
    
            public String getAge() {
                return age;
            }
    
            public void setAge(String age) {
                this.age = age;
            }
    
            public Boolean getCheckNameTextField() {
                return checkNameTextField;
            }
    
            public void setCheckNameTextField(Boolean checkNameTextField) {
                this.checkNameTextField = checkNameTextField;
            }
        }
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:c="http://java.sun.com/jsp/jstl/core"
        xmlns:p="http://primefaces.org/ui">
    <h:head>
    
    </h:head>
    <body>
        <h:form id="formId">
            <p:accordionPanel id="accordion" cache="false" activeIndex="-1"
                style="margin-bottom:20px;width:330px;" widgetVar="acc">
                <p:ajax event="tabClose" listener="#{testBean.checkNameTextField}" />
    
                <p:tab title="Filter:"
                    titleStyle="width:330px;background-color:#DAEDF4">
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Name" />
                        <h:inputText value="#{testBean.name}" />
    
                        <h:outputLabel value="Age" />
                        <h:inputText value="#{testBean.age}" />
    
                        <h:outputLabel value="Semester" />
                        <h:inputText value="#{testBean.semester}" />
    
                    </h:panelGrid>
                    <p:commandButton icon="ui-icon-save" value="Save"
                        action="#{testBean.save}"
                        onclick="PF('formId:accordion').hide();" />
                </p:tab>
            </p:accordionPanel>
        </h:form>
    
    </body>
    </html>
    
  • 共有1个答案

    楚德辉
    2023-03-14

    我确实不明白你想做什么,但是为了扩展/安装手风琴面板,你可以使用这个

    展开:PF('accordian-widgetvar').select(index)

    折叠:PF('accordian-widgetvar')。取消选择(index)

     类似资料:
    • 简单的问题,但我找不到答案。如何以编程方式折叠或展开? ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    • 我在CollapsingToolbarLayout中有ImageView和TabLayout(4个选项卡),现在我想在单击选项卡(2,3,4)时折叠Appbar,第一个选项卡应该正常工作(按滚动)。有没有方法以编程方式展开和折叠Appbar? 然而,我看到了解决方案,appBarLayout.setExpanded(false)折叠Appbar,但它又可以向下拖动。我想阻止AppBar展开,直到选

    • 展开或折叠代码 操作步骤: 菜单栏:Code —> Folding —> Expand 快捷键: Mac: command + “+” Windows\/Linux: Ctrl + "+" 展开或折叠代码 操作步骤: 菜单栏:Code —> Folding —> Collapse 快捷键: Mac: command + “-” Windows\/Linux: Ctrl + "-" 展开或折叠当前代

    • 我有一个带有多个视图保持器的RecyclerView适配器。每个ViewHolder都有一个标题TextView和一个嵌套的RecyclerView,工作正常。但我想实现一个扩展/折叠函数,这样嵌套的RecyclerView就可以隐藏,直到单击标题为止。我使用此方法RecyclerView展开/折叠项目。它可以工作,但当我单击标题以展开嵌套的RecyleView时,recyclerview不会填充

    • 使用故事板非常简单。您只需将操作拖到“退出”。但是我应该如何从我的代码中调用它呢?

    • 问题内容: 我能够展开和折叠单元格,但我想在UITableViewCell内调用函数(展开和折叠)以更改按钮标题。 问题答案: 如果你想在细胞获得更大的身体,那么,你有你的店,在使用: 然后,当您想在didSelectRow中展开一个时: 编辑 这将使单元动画自己变大,您不需要单元中额外的动画块。 编辑2