【发布时间】:2015-05-29 08:13:45
【问题描述】:
如果设置值满足某个条件,我正在尝试更新 JSF 组件的 styleClass。我可以通过重新渲染由某些 ajax 事件触发的整个组件来使其工作。然而,提供的事件只会在不合时宜的时候触发,即当用户仍在与组件交互时,由于重绘而导致中断。
有没有办法在不重绘的情况下更新 styleClass?
工作代码 sn-ps,但具有不良行为:
<p:selectCheckboxMenu id="input" value="#{bean.value}">
<f:selectItems value="#{bean.options}" />
<f:attribute name="styleClass" value="#{bean.highlight(bean.value)}" />
<p:ajax event="toggleSelect" update="input" />
<p:ajax event="change" update="input" />
</p:selectCheckboxMenu>
还有后台bean:
@ManagedBean
@ViewScoped
public class Bean {
private List<String> value;
private Map<String, String> options;
public String highlight(Object value) {
return value == null || value instanceof Collection<?> && ((Collection<?>) value).isEmpty() ? "" : "ui-state-active";
}
/* getters & setters */
}
【问题讨论】:
标签: jsf jsf-2 primefaces