0

在使用自定义内容时,似乎无法从 PrimeFaces (3.3) 禁用 SelectOneMenu 中的项目(如http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsf所示)。

测试用例很简单,只需要以下内容:

<h:form>
    <p:selectOneMenu value="#{testBean.selected}">
        <f:selectItems value="#{testBean.options}" var="t"
            itemLabel="#{t.label}" itemValue="#{t}"
            itemDisabled="#{t.value % 2 == 0 ? 'true' : 'false'}" />
    </p:selectOneMenu>

    <p:selectOneMenu value="#{testBean.selected}" var="x">
        <f:selectItems value="#{testBean.options}" var="t"
            itemLabel="#{t.label}" itemValue="#{t}"
            itemDisabled="#{t.value % 2 == 0 ? 'true' : 'false'}" />
        <p:column>
            #{x.label} -- #{x.label}
        </p:column>
    </p:selectOneMenu>
</h:form>

和以下 Java 文件:

豆:

@Named
public class TestBean {

private TestObject  selected;
// getter/setter

public List<TestObject> getOptions() {
    return Arrays.asList(new TestObject("1"), new TestObject("2")); }
}

目的:

public class TestObject {
    private Integer value;
    // getter/setter

    public TestObject() {}
    public TestObject(String s) {
        this.setLabel(s);
    }
    public String getLabel() {return "label: " + value;}
    public void setLabel(String l) {this.value = new Integer(l);}
}

第一个下拉菜单工作正常,第二个没有。关于如何解决这个问题的任何想法?

4

0 回答 0