【发布时间】:2012-02-08 11:41:16
【问题描述】:
我正在尝试使用此代码向 selectoneradio 添加 ajax 行为:
xhtml:
<h:selectOneRadio id="metalA" converter="metalConverter" value="#{backingBean.metal.metalCode">
<f:selectItems value="#{backingBean.metalCodeRadio}" />
<f:ajax listener="#{backingBean.updateMenu}" event="click" execute="metalA" render="metalTypeMenuA"/>
</h:selectOneRadio>
<p:outputPanel id="panelA">
<h:selectOneMenu id="metalTypeMenuA" converter="metalConverter" value="#{backingBean.order.metal}" rendered="#{teklifIslemleriBean.selectedITip == 1}">
<f:selectItems value="#{backingBean.metalDetailsMenu}" />
</h:selectOneMenu>
</p:outputPanel>
支持 bean:
MetalCode selectedMK = null;
public void updateMenu(AjaxBehaviorEvent event) {
System.out.println("Entered to updateMenu method");
if (metal.getMetalKod()!= null) {
electedMK = aMetal.getMetalCode();
}
if (selectedMK != null) {
// metalTypeMenuA Combobox
List<Metal> metalList = aService.getAccToMetalCode(null, selectedMK);
System.out.println("MetalList:" + metalList.size());
metalTypeMenuA.clear();
for (Metal m : metalList) {
metalTypeMenuA.add(new SelectItem(m, "No:" + m.getMetalNo() + " ,Weight: " + m.getWeight();
}
}
}
但是它甚至没有进入 updateMenu 方法。而不是单击我尝试选择、更改等。我还尝试放置一个包装面板并更新它而不是复选框,但仍然没有好处。上面的代码有什么问题?是否可以通过更改单选按钮来更新复选框?提前致谢。
JSF 2.0 Primefaces 2.2.1
编辑: 我添加了以下
<h:message for="metalA" id="messaged"/>
<f:ajax listener="#{backingBean.updateMenu}" event="click" execute="metalKoduA" execute="metalA" render="messaged orderPG2"/>
orderPG2 是复选框的包装器。但我仍然可以在 h:message 中收到任何错误消息或发生任何 ajax 行为。
【问题讨论】:
标签: ajax jsf-2 primefaces