【发布时间】:2015-10-12 10:16:38
【问题描述】:
我正在编写一个 Primefaces 5.1 portlet。
它包含在一个包含panelMenu 的独特页面中,我需要它从每次用户更改页面(页面加载时)折叠的任何面板开始。
但是,如果我打开一个面板,然后更改页面,它将开始显示该面板仍处于打开状态。
我找不到任何选项来实现这个目标(例如,collapsed=true、ignoreCookie=true 或类似的东西)。
我找到的唯一解决方案是以下 Javascript 代码:
PrimeFaces.widgets.myPanelMenu.collapseRootSubmenu(PrimeFaces.widgets.myPanelMenu.headers);
问题是这段代码将折叠任何打开的面板(因此在页面加载时用户能够看到面板菜单折叠动画)但它似乎没有将此状态存储在其 cookie/localstorage 中......结果是在任何页面加载用户都可以看到这个动画。
我确定它不会保存其状态,因为“解决”问题的唯一方法是手动重新打开并重新折叠面板......然后,在页面更改后,这些菜单开始关闭(并且没有动画)。
我也尝试在崩溃后使用PrimeFaces.widgets.sideMenuPanel.saveState(),但没有成功。
你有什么想法吗?
谢谢...
【问题讨论】:
-
试过更新的 PF 版本?
-
然后看看source of both the old (5.1)和new(5.3快照)并在js中创建补丁
-
@Kukeltje 谢谢,但我不是在谈论错误......我只需要特定(非默认)行为,我不知道是否存在实现它的官方方法.
-
我也不是在谈论错误。我说的是在新版本中所做的改进。您可以在 releasenotes/blogs/issuelists/documentation 等中阅读...如果您注意到这些改进,您可以查看它是如何实现的并创建一个解决方法...简单...这就是开源的优势。
-
github.com/primefaces/primefaces/issues/121 将其设置为 false 不应保留 5.2.1/5.1.16 及更高版本的状态(5.3-SNAPSHOT 或 RC1/2 版本也是如此)
标签: jsf primefaces