我为 dataGrid 的每一行呈现了一个 selectOneMenu。问题是选择更改时未调用 ajax 侦听器的方法。
如果我在 dataGrid 之外使用相同的 selectOneMenu,它可以正常工作。p:selectBooleanCheckbox 也会发生相同的行为。
XHTML 页面:
<h:form id="form2">
<p:dataGrid id="gridC" widgetVar="gridC"
value="#{myBean.comp}" var="site" columns="1" rowIndexVar="siteIndex">
<p:column>
<h:outputText value="#{site.sito}" />
</p:column>
<p:column>
<p:selectOneMenu id="stato" value="#{site.stateId}"
required="true">
<p:ajax update="@form :tabView:frm_buttons" global="false"
listener="#{myBean.testChangeState}" />
<f:selectItems value="#{myBean.siteStates}" var="s"
itemLabel="#{s.state}" itemValue="#{s.stateId}" />
</p:selectOneMenu>
</p:column>
</p:dataGrid>
</h:form>
托管豆:
@ManagedBean
@ViewScoped
public class MyBean implements Serializable {
private SiteState siteStates;
private Comp comp;
// getters and setters...
public void testChangeState() {
System.out.println("Test change state fired.");
}
}
SiteState bean:
public class SiteState implements Serializable {
private String state;
private String stateId;
// getters and setters...
}