如何以编程方式折叠 primefaces 手风琴面板中的所有面板?
How to collapse programmatically all panels in a primefaces accordionPanel?
我在 primefaces 对话框中有一个 primefaces 手风琴面板,每次打开对话框(对话框为 dynamic="true")时,手风琴面板的所有面板都会折叠。
accordionPanel 有一个特点,它可以有 0 到 2 个面板,直到用户单击 menuItem 时才知道这一点。这些面板的存在与否取决于backing bean中是否存在2个对象。
我的代码:
<p:accordionPanel activeIndex="-1" dynamic="true" widgetVar="accordionPanelWV" id="accordionPanel">
<p:tab title="#{messages['comun.provA']}" rendered="#{productsBean.productSel.providerA != null}">
....
</p:tab>
<p:tab title="#{messages['comun.provB']}" rendered="#{productsBean.productSel.providerB != null}">
....
</p:tab>
</p:accordionPanel>
我尝试了以下方法,但 none 给了我预期的结果
Select 在 open/close 对话框
之前 JS/Jquery 中的负数、空索引或无效索引
PF('accordionPanelWV').select(-1);
PF('accordionPanelWV').select(null);
PF('accordionPanelWV').select("");
在 open/close 对话框之前取消选择 JS/Jquery 中的所有索引
PF('accordionPanelWV').unselect(0);
PF('accordionPanelWV').unselect(1);
我该怎么做?
Primefaces 版本 8.0
谢谢
这将在 PF 9.0 中修复:https://github.com/primefaces/primefaces/issues/6605
要添加 selectAll
和 unselectAll
方法来展开全部或折叠所有面板,只需将此 JS 代码添加到您的应用程序中即可。
if (PrimeFaces.widget.AccordionPanel) {
PrimeFaces.widget.AccordionPanel.prototype.selectAll = function() {
var $this = this;
this.panels.each(function(index) {
$this.select(index);
if (!$this.cfg.multiple) {
return false; // breaks
}
});
};
PrimeFaces.widget.AccordionPanel.prototype.unselectAll = function() {
var $this = this;
this.panels.each(function(index) {
$this.unselect(index);
});
};
}
我在 primefaces 对话框中有一个 primefaces 手风琴面板,每次打开对话框(对话框为 dynamic="true")时,手风琴面板的所有面板都会折叠。
accordionPanel 有一个特点,它可以有 0 到 2 个面板,直到用户单击 menuItem 时才知道这一点。这些面板的存在与否取决于backing bean中是否存在2个对象。
我的代码:
<p:accordionPanel activeIndex="-1" dynamic="true" widgetVar="accordionPanelWV" id="accordionPanel">
<p:tab title="#{messages['comun.provA']}" rendered="#{productsBean.productSel.providerA != null}">
....
</p:tab>
<p:tab title="#{messages['comun.provB']}" rendered="#{productsBean.productSel.providerB != null}">
....
</p:tab>
</p:accordionPanel>
我尝试了以下方法,但 none 给了我预期的结果
Select 在 open/close 对话框
之前 JS/Jquery 中的负数、空索引或无效索引PF('accordionPanelWV').select(-1);
PF('accordionPanelWV').select(null);
PF('accordionPanelWV').select("");
在 open/close 对话框之前取消选择 JS/Jquery 中的所有索引
PF('accordionPanelWV').unselect(0);
PF('accordionPanelWV').unselect(1);
我该怎么做?
Primefaces 版本 8.0
谢谢
这将在 PF 9.0 中修复:https://github.com/primefaces/primefaces/issues/6605
要添加 selectAll
和 unselectAll
方法来展开全部或折叠所有面板,只需将此 JS 代码添加到您的应用程序中即可。
if (PrimeFaces.widget.AccordionPanel) {
PrimeFaces.widget.AccordionPanel.prototype.selectAll = function() {
var $this = this;
this.panels.each(function(index) {
$this.select(index);
if (!$this.cfg.multiple) {
return false; // breaks
}
});
};
PrimeFaces.widget.AccordionPanel.prototype.unselectAll = function() {
var $this = this;
this.panels.each(function(index) {
$this.unselect(index);
});
};
}