Группировка элемента в selectOneMenu Primefaces

Я решил использовать группу selectItems в selectOneMenu в прайм-фейсах и столкнулся с проблемой. Я вижу решение моей проблемы Как сгруппировать selectItems в selectOneMenu, но мне это не помогает

когда я использую <p:selectOneMenu>, это не нормально, и создается такой html

<div id="manageTournament:gender" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-helper-clearfix">
<div class="ui-helper-hidden-accessible"><select id="manageTournament:gender_input"
                                                 name="manageTournament:gender_input">
    <option value="">German Cars</option>
    <option value="">American Cars</option>
</select></div>

Но когда я использую <h:selectOneMenu>, все в порядке

<select id="manageTournament:gender" name="manageTournament:gender" size="1">
<optgroup label="German Cars">
    <option value="BMW">BMW</option>
    <option value="Mercedes">Mercedes</option>
    <option value="Volkswagen">Volkswagen</option>
</optgroup>
<optgroup label="American Cars">
    <option value="Chrysler">Chrysler</option>
    <option value="GM">GM</option>
    <option value="Ford">Ford</option>
</optgroup>
</select>

Моя xhtml-страница

<h:form id="manageTournament">
            <f:event type="preRenderView" listener="#{adminTournamentController.setConditions(false, 1)}"/>
            <p:wizard id="wizard" widgetVar="wiz" style="display: inline-block; width:600px;"
                      flowListener="#{adminTournamentController.onFlowProcess}" nextLabel="#{msg.next_button}" backLabel="#{msg.back_button}">

                <p:tab id="competitionId" title="#{msg.add_tournament}">
                    <p:panel header="#{msg.info_about_tournament}">
                        <h:panelGrid columns="3" olumnClasses="label, value" styleClass="grid">
<p:outputLabel value="#{msg.age_category}" for="gender_edit"/>
                            <p:selectOneMenu  id="gender_edit"
                                             value="#{adminTournamentController.genderAgeId}"
                                             rendered="#{not empty adminTournamentController.tournamentBean.teams}"
                                             disabled="true">
                                <f:selectItems value="#{adminTournamentController.genderAgeList}"/>
                            </p:selectOneMenu>

                            <p:selectOneMenu id="gender"
                                             value="#{adminTournamentController.genderAgeId}"
                                             rendered="#{empty adminTournamentController.tournamentBean.teams}">
                                <f:selectItems value="#{adminTournamentController.genderAgeList}"/>
                            </p:selectOneMenu>
                             </p:panel>
                </p:tab>
                <!-- others tabs -->          

            </p:wizard>
</h:form>

Необходимо использовать selectOneMenu с группировкой, и я нахожу другую статью OptionGroup-support для SelectOneMenu в Primefaces< /а>

Но никто не поможет этому парню. Возможно ли решить мою проблему?


person Ray    schedule 05.02.2013    source источник
comment
Очень интересно. На самом деле Primefaces не отображает теги optgroup, а только теги option. select с options скрыты, список, показывающий варианты, просто 'ul'. Можете ли вы опубликовать свой код xhtml и резервного компонента для создания кода элементов?   -  person partlov    schedule 05.02.2013
comment
В будущих вопросах, пожалуйста, всегда упоминайте используемые версии.   -  person BalusC    schedule 05.02.2013


Ответы (1)


Я могу воспроизвести это.

введите здесь описание изображения

Очевидно, это была ошибка в PrimeFaces 3.4.2. Он работает в PrimeFaces 3.5, выпущенном только на этой неделе.

введите здесь описание изображения

Просмотр исходного кода (исходный код компонента такой же, как и в ответе, который ты нашел):

<o:importConstants type="org.primefaces.util.Constants" var="PrimeFaces" />
<p>PrimeFaces version: #{PrimeFaces.VERSION}</p>
<h:form>
    <p:selectOneMenu>
        <f:selectItems value="#{bean.cars}" />
    </p:selectOneMenu>
</h:form>

То, что это сработало для меня при публикации найденного вами ответа, скорее всего, потому, что в тот момент я использовал снимок 3.5.

person BalusC    schedule 05.02.2013