附上丰富:toggleControl以单选按钮或选择项目(Attach rich:toggleCon

2019-09-23 03:03发布

有没有人有任何成功安装rich:toggleControl组件单选按钮组件( h:selectOneRadio ),或者任何孩子的选择项目(在这种情况下, s:enumItem )。

基本的代码示例:

<h:selectOneRadio value="#{backingValue}">
   <s:enumItem enumValue="VAL_1" itemLabel="Value One" />
   <s:enumItem enumValue="VAL_2" itemLabel="Value Two" />
   <s:convertEnum />
</h:selectOneRadio>

理想的事情将是切换控制连接到s:enumItem这么我可以切换到一个特定的状态。 然而在这一点上我会很高兴,如果切换控制可以直接连接到h:selectOneRadio 。 我试着切换控制作为一个孩子h:selectOneRadios:enumItem秒; 既不工作。 我也试着包裹toggleControl的身边h:selectOneRadio ,在这种情况下,切换控制工作,但单选按钮没有。

Answer 1:

只是配合你的丰富:togglePanel来支持bean相同的值,并使用A4J支持标签,更新的价值和重新渲染面板。

有一点要记住的是,富人:togglePanel#VALUE属性必须解析为一个字符串,那么你可能需要绑定到#{backingValue.name()}(因为有人为不使用的toString()可能会覆盖它在你以后...)

这样的事情应该工作:

<h:selectOneRadio id="radioButtons" value="#{backingValue}">
   <a4j:support event="onclick" 
                ajaxSingle="true" 
                reRender="radioButtons, togglePanel"/>

   <s:enumItem enumValue="VAL_1" itemLabel="Value One" />
   <s:enumItem enumValue="VAL_2" itemLabel="Value Two" />
   <s:convertEnum />
</h:selectOneRadio>


<rich:togglePanel id="togglePanel" 
                  switchType="ajax"
                  value="#{backingValue.name()}" >

   <f:facet name="VAL_1">
      <h:outputText value="Selected enum value 1"/>
   </f:facet>

   <f:facet name="VAL_2">
      <h:outputText value="Selected enum value 2"/>
   </f:facet>
</rich:togglePanel>

你可能有与Ajax支持事件绑定以及玩。 我发现,在“平变化”,并与单选按钮“ONSELECT”事件可能是有点参差不齐,其中AJAX4JSF关注。 我已经与弦乐,在那里我支持bean行动将其值设置更改切换面板状态做到了这一点-但它应该与枚举的正常工作。



Answer 2:

这不是严格意义上的回答我上面的问题,但它周围的工作我使用的,现在直到我弄清楚如何做“好”上面重新。

但无论如何,解决方法:添加一个onclick事件到H:selectOneRadio这就要求富人:togglePanel的JavaScript API:

onclick="TogglePanelManager.toggleOnClient('TOGGLE_PANEL_ID_HERE',null);"

不过我想这样做“正确”使用丰富:toggleControl组件如果可能的话...



文章来源: Attach rich:toggleControl to radio buttons or select items