我在primefaces对话框中有一个primefaces手风琴面板,并且每次打开该对话框(对话框是dynamic =“ true”)时,折叠手风琴面板的所有面板。
AccordionPanel具有特殊性,它可以具有0到2个面板,并且直到用户单击menuItem时才知道。这些面板是否存在取决于备用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>
我尝试了以下方法,但是都没有给我预期的结果
在打开/关闭对话框之前,在JS / Jquery中选择一个负数,空值或无效索引
PF('accordionPanelWV').select(-1);
PF('accordionPanelWV').select(null);
PF('accordionPanelWV').select("");
在打开/关闭对话框之前,取消选择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);
});
};
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句