Включение отключения флажков в таблице данных - PullRequest
3 голосов
/ 14 марта 2012

Есть ли способ в Primefaces включить или отключить флажок в datatable?Прямо сейчас моя таблица данных выглядит так:

<p:dataTable id="dTable" var="tt" value="#{aBean.aList}" selection="#{aBean.selectedValue}" rowStyleClass="#{tt.state.intValue() le 1 ? 'active' : 'passive'}">
    <p:column selectionMode="multiple" />
    ...
</dataTable>

, но этот код просто помещает столбец с флажками вместе с флажком в заголовке.Я хочу, чтобы флажки отображались в соответствии со значением в компоненте поддержки.

Ответы [ 3 ]

9 голосов
/ 30 октября 2015

FWIW много лет спустя ...

В PF 5.x вы знаете, что больше делать это в столбце, вы должны установить критерии disabledSelection в теге <p:datatable ...>.

Что-то вроде:

<p:datatable disabledSelection="#{myvar ne null}" ... >

Мне потребовалось немало времени, чтобы разобраться, так как часто вопросы (везде) ставятся и отвечают независимо от версии. Вот где я наконец нашел ответ.

Ответ Optimus Prime на форуме сообщества PF

7 голосов
/ 15 марта 2012

Я нашел решение внутри ПФ здесь: http://forum.primefaces.org/viewtopic.php?f=3&t=14029 Использование rowstyleclass и css решило проблему:

XHTML:

<p:dataTable id="dTable" var="tt" value="#{aBean.aList}" 
                                  selection="#{aBean.selectedValue}" rowStyleClass="#{tt.state.intValue() le 1 ? 'active' : 'passive'}">                    

<p:column    selectionMode="multiple"/>
...
</dataTable>

CSS:

.active{    
    background-image: none !important;   
}

.passive{
    background-color:gainsboro !important;
    background-image: none !important;
}

.passive td.ui-selection-column input {
       display:none;
    }

Включает / отключает командную кнопку с помощью CSS.

2 голосов
/ 14 марта 2012

опробуйте disabledSelection из <p:column

Вы всегда можете сделать это без, просто сделайте это вручную ..., поместив

И вы можете использовать

rowIndexVar: Имя итератора для ссылки на каждый индекс строки.

для ссылки на номер строки

А вот как должен выглядеть столбец выбора (больше илиless)

использовал класс checkall, чтобы позднее делегировать его с помощью jQuery и выполнить select all magic

<p:column id="selection_column">
    <f:facet name="header">
        <h:selectBooleanCheckbox value="" class="checkall"/>
    </f:facet>
    <h:selectBooleanCheckbox rendered="#{myRow.selectable}" value="#{myRow.selected}"/>
</p:column>



jQuery(window).load(function() {
    jQuery(document).delegate(".checkall", "click", function(event) {
        jQuery(this).closest("table").find(':checkbox').attr('checked', this.checked);
    });
});
...