有没有人有任何成功安装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:selectOneRadio
和s:enumItem
秒; 既不工作。 我也试着包裹toggleControl的身边h:selectOneRadio
,在这种情况下,切换控制工作,但单选按钮没有。
只是配合你的丰富: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行动将其值设置更改切换面板状态做到了这一点-但它应该与枚举的正常工作。
这不是严格意义上的回答我上面的问题,但它周围的工作我使用的,现在直到我弄清楚如何做“好”上面重新。
但无论如何,解决方法:添加一个onclick事件到H:selectOneRadio这就要求富人:togglePanel的JavaScript API:
onclick="TogglePanelManager.toggleOnClient('TOGGLE_PANEL_ID_HERE',null);"
不过我想这样做“正确”使用丰富:toggleControl组件如果可能的话...