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

Primeface手风琴面板验证的内部元素在tabChange/tab关闭

毋修为
2023-03-14

我使用的是一个有三个标签的手风琴面板。

每个选项卡都有必填字段和

<p:ajax event="tabChange" update=":contentForm:growl"/>
<p:ajax event="tabClose" update=":contentForm:growl"/>

默认情况下,关闭所有选项卡。当我单击打开任何选项卡时,它会对所有选项卡中的所有输入进行求值。

我如何跳过字段验证和做ajax查询期间打开/关闭标签?

(我需要一个Ajax查询来保存打开的选项卡索引到Bean:activeIndex="#{tabBean.active选项卡}"


共有1个答案

茅星雨
2023-03-14

我已经解决了这个问题。我创建了saver类:

import javax.faces.event.AjaxBehaviorEvent;
import org.primefaces.component.accordionpanel.AccordionPanel;

public class ActiveIndexSaver {
     private String activeTabs = "-1,0";

     public String getActiveTabs() {
         return activeTabs;
     }

     public void setActiveTabs(String activeTabs) {
         this.activeTabs = activeTabs;
     }

     public void saveIndexes(AjaxBehaviorEvent abe){
         AccordionPanel accordion = (AccordionPanel)abe.getComponent();
         activeTabs = accordion.getActiveIndex();
     }
}

之后我在上面写了Inject of the bean to page-bean and getter为他:

@Inject
private ActiveIndexSaver activeIndexSaver;
....
public ActiveIndexSaver getActiveIndexSaver() {
    return activeIndexSaver;
}

最后,html:

<p:accordionPanel ... activeIndex="#{tabBean.activeIndexSaver.activeTabs}">
     <p:ajax event="tabChange" immediate="true" listener="#{tabBean.activeIndexSaver.saveIndexes}"/>
     <p:ajax event="tabClose" immediate="true" listener="#{tabBean.activeIndexSaver.saveIndexes}"/>
     ......
 类似资料:
  • 我在primeface对话框中有一个primeface手风琴面板,每次对话框(对话框是动态的="true")打开时,手风琴面板的所有面板都会折叠。 accordionPanel有一个特性,它可以有0到2个面板,直到用户单击菜单项时才知道这一点。这些面板的存在与否取决于支持bean中是否存在2个对象。 我的代码: 我试过以下方法,但都没有达到预期的效果 在打开/关闭对话框之前,在JS/Jquery中

  • 手风琴效果其实就是通过JS改变元素的height,然后加上transition来让css动起来。 准备HTML结构 这里我们使用 dl , 因为 dt 刚好可以模拟标题, dd 模拟内容。 <div class="panel"> <dl> <dt>One Item</dt> <dd>One Item Content .</dd>

  • 在Primefaces showcase上,左侧菜单上有一个搜索输入。菜单看起来像一个手风琴面板,每个键向上都会触发某种ajax来过滤手风琴选项卡。 他们是如何做到这一点的?我查看了他们的展示案例,但只看到DataTable的类似示例,而没有看到AccordionPanel的任何示例。

  • 我正在使用jQuery手风琴来隐藏一些数据。 accordion标题是一个带有一些标题的表格。有一个标题,我不希望你点击它,因为手风琴事件会触发。 所以 手风琴是可折叠的,如果您单击Test2(类nofunction),手风琴事件不应触发。但是如果您单击Test或其他表头,手风琴应该会触发事件。 我可以添加这个功能吗? 更新测试http://jsfiddle.net/e3Q8d/,包括jQuery

  • 下面是我试图实现的布局的快照。 我这里有两个问题: > 现在,页面加载时打开了所有的手风琴面板。我希望它最初处于关闭状态(如选项1)。 我没有看到任何切换功能或任何与PrimeFaces Accordian相关的东西。只有widgetvar.show()函数,但它对我没有帮助。

  • jQueryUI中的Accordion Widget是一个基于jQuery的可扩展和可折叠内容持有者,它被分成几个部分,可能看起来像标签。 jQueryUI提供了accordion()方法来实现这一点。 语法 (Syntax) accordion()方法可以使用两种形式 - $(selector,context).accordion(options)方法 $(selector, context).