Условно отобразите строку с помощью Таблицы данных JSF

У меня есть некоторый код JSF, который в настоящее время работает (как показано ниже), и я должен изменить его для условного подавления дисплея определенных строк таблицы. Я знаю, как условно подавить дисплей конкретной ячейки, но это, кажется, создает пустую ячейку, в то время как то, что я пытаюсь сделать, не должно отображать строку вообще.

Какие-либо предложения?

<h:dataTable styleClass="resultsTable" id="t1" value="#{r.common}" var="com" headerClass="headerBackgrnd" rowClasses="rowOdd, rowEven" columnClasses="leftAlign, rightAlign, leftAlign">
    <h:column>
        <h:outputText rendered="#{com.rendered}" styleClass="inputText" value="#{com.description}: " />
    </h:column>
    <h:column>
        <h:outputText styleClass="outputText" value="#{com.v1}" />
    </h:column>
    <h:column>
        <h:inputText styleClass="inputText" value="#{com.v2}" />
   </h:column>
</h:dataTable>

В основном, строка, которая говорит #{com.rendered} условно отобразит содержание отдельной ячейки, производя пустую клетку когда com.rendered ложь. Но я хочу пропустить всю строку дисплея при определенных условиях - как я пошел бы о выполнении этого?

14
задан Elie 13 May 2010 в 18:58
поделиться

2 ответа

Строки соответствуют объектам данных в коллекции вашей таблицы. Если вам не нужна строка, не помещайте объект в коллекцию.

В качестве альтернативы вы можете использовать параметр rowClasses для dataTable.

Код компонента:

public String getRowClasses() {
    StringBuilder sb = new StringBuilder();
    for (Data data : myData) {
        sb.append(data.hide ? 'hide,' : 'show,');
    }
    return sb.toString();
}

CSS:

tr.hide {display:none;}
13
ответ дан 1 December 2019 в 13:08
поделиться

Я успешно скрыл строки, поместив отображаемый атрибут во все теги . Проблема в том, что он подавляет заголовки таблиц. Если в вашей таблице нет заголовков таблицы (это теги, встроенные в ), этот подход может сработать для вас.

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

0
ответ дан 1 December 2019 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: