如果设置值满足某个条件,我正在尝试更新JSF组件的styleClass。我可以通过重新呈现由某个ajax事件触发的整个组件来使其工作。但是,提供的事件仅在不合适的时间触发,即当用户仍在与组件交互时由于重绘而导致中断。
是否可以在不重绘的情况下更新styleClass?
工作代码段,但有不良行为:
<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 */
}
答案 0 :(得分:0)
是否可以在不重绘的情况下更新styleClass?