设置热键以折叠面板

Set up hotkey for collapse a panel

我们的项目使用 JSF 2.2 primeface 5.1。

我有一个可切换面板,折叠属性设置为 true。

<p:panel id="panel1" toggleable="true" collapsed="true">
...
</p:panel> 

如何在 jsf 页面中设置 p:hotkey 以将属性 collapsed 更改为 false?

在基本级别,您可以使用以下方法展开窗格:

<p:hotkey bind="ctrl+s" handler="thePanelWidgetVar.expand();" />

如果你真正想要切换面板的状态,你可以直接在面板上调用collapse()expand()。显然,您需要检查面板的当前状态以确定调用什么。您可以将其全部折叠到以下脚本中:

 <script>
      function togglePanelState (thePanel){

        if(thePanel.cfg.collapsed){
             thePanel.expand();
         }else{
             thePanel.collapse();
         }
      }
 </script>

然后您可以使用 togglePanelState 因此

 <p:hotkey bind="ctrl+s" handler="togglePanelState(thePanelWidgetVar);" />

编辑:

感谢 Hatem Alimam 指出在 PF 5.1 中存在一种类似于我的 togglePanelState 实现的便捷方法,其形式为 toggle() 函数。使用它,您可以改为:

 <p:hotkey bind="ctrl+s" handler="PF('thePanelWidgetVar').toggle();" />