【问题标题】:Adding a Dropdown listbox - Issue beginner添加下拉列表框 - 问题初学者
【发布时间】:2011-10-20 09:49:40
【问题描述】:

我已经在这个论坛和其他各种论坛中多次问过这个问题,但仍然无法在我的代码中实现它。

我是doing this example,我需要添加一个列表框(例如在MANUFACTURE 列中)。 我无法显示列表框或使用我的 Java 类中的值填充它。

我的java代码是这样的;

private List<Hotel> listHotel; 


public List<Hotel> ListAllHotels() {
    return dml.displayAllHotels(); //dml.displayAllHotels() returns a List<Hotel> 
}

通常我创建一个列表框并使用以下 JFS 代码填充值;

            <h:selectOneMenu value="#{HotelDataForm.stationedHotel}" id="globalFilter" onchange="carsTable.filter()"   >
                <f:selectItems value="#{HotelDataForm.ListAllHotels}"  var="user" itemValue="#{user[1]}" itemDisabled="false" itemLabel="#{user[1]}" />
         <h:outputText value="#{carsTable[1]}" />
            </h:selectOneMenu>

这可行,但我无法将此代码添加到我发布的链接中的Manufacturer 列中。在示例中,他们使用SelectItem[] 对象来填充列表框。我对如何在我的程序中向manufacturer 列添加和填充值一无所知。

【问题讨论】:

    标签: java jsf datatable primefaces selectonemenu


    【解决方案1】:

    这是来自PrimeFaces 2.2 Guide第131页上的示例

    如果您想使用 下拉而不是 inputtext 只允许预定义的过滤器值使用 filterOptions 属性 以及作为值的选择项的集合/数组。此外,filterMatchMode 定义了内置 matcher 默认为startsWith。以下是包含这些的高级过滤数据表 选项演示。

    <p:column
            filterBy="#{car.manufacturer}" 
            headerText="Manufacturer"
            filterOptions="#{carBean.manufacturerOptions}" 
            filterMatchMode="exact">
        <h:outputText value="#{car.manufacturer}" />
    </p:column>
    

    因此,在本例中,carBean 应该有一个方法 getManufacturerOptions(),它返回 SelectItem[]List&lt;SelectItem&gt;,其中包含应该在过滤器下拉列表中的所有值。

    参考:Javadoc for SelectItem

    【讨论】:

    • 我有一个List&lt;Hotel&gt; 如何将其转换为List &lt;SelectItem&gt;
    • 我看到了您在 Stack Overflow 上发布的其他问题,而且您似乎不愿意自己努力弄清楚基础知识。例如,SelectItem 是一个非常基本的 JSF 类,如果您只是谷歌它或阅读任何有关 JSF 编程的书籍,那么有很多如何使用它的示例。
    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2010-09-15
    • 2020-01-04
    • 2020-11-23
    相关资源
    最近更新 更多