2011-02-05 1 views
2

У меня есть таблица данных, как:JSF: как вы добавляете пустую строку в: dataTable?

<h:dataTable id="box-score-away" value="#{individualAwayBoxScoreQuery.resultList}" var="_bssl"> 
    <f:facet name="header"> 
    <h:outputText value="Away Team" /> 
    </f:facet> 
    <h:column> 
    <f:facet name="header"> 
     <h:outputText value="Name" /> 
    </f:facet> 
    <h:outputText value="#{_bssl.name}" /> 
    <f:facet name="footer"> 
     <h:outputText value="&#931;" styleClass="bold" /> 
    </f:facet> 
    </h:column> 
    ... 
</h:dataTable> 

Когда список результатов не имеет элементов, TBODY стола становится пустым. У Firefox есть проблемы с этим, и рендеринг страниц действительно испорчен.

Как добавить строку в tbody, когда список результатов пуст? (Обратите внимание, что речь идет не о состоянии, а скорее о компонентах, которые нужно использовать и где их разместить.)

Строка должна быть td с colspan of 10. Я пробовал несколько вещей без успеха. Есть ли f: дословно путь?

ответ

2
#{individualAwayBoxScoreQuery.resultList} 

Вы можете справиться с этим в своей модели. Условно возвратите List, содержащий единственный пустой боб (я думаю, Map тоже сделал бы). Существует несколько способов сделать это: в боковом боку; функции EL; и т. д.

Если серверы памяти, MyFaces делает это автоматически, чтобы создать действительный XHTML.

+0

Хмм, я искал решение, которое генерирует тд-тег с кол-вом 10 штук. Элемент фиктивного списка не работает, я думаю. – Kawu

+0

@Kawu - средство отображения таблицы по умолчанию не будет этого делать; Наверное, вы могли бы поместить в таблицу атрибут «renderered» и условно отобразить таблицу или пустую пустую дословную версию. Думаю, вы тоже можете это сделать с помощью JavaScript. – McDowell

3

У меня была аналогичная проблема, и я в конечном итоге использовал додзё, чтобы добавить <tr> к телу таблицы.

Для приведенного выше примера может выглядеть примерно, как показано ниже:

dojo.addOnLoad(function(){ 

if(dojo.isMozilla) { 
    var bodyElem = dojo.query(".yourTablesStyleClass tbody")[0]; 

    dojo.create("tr", null, bodyElem, "last"); 

} }); 
0

Добавление пустого компонента в класс и оказывающий колонку conditionlly помог мне создать пустую строку в нижней части таблицы.

 add a new boolean to the bean say dummyRow 
     then set bean.setName(".") 
       bean.setDummyRow(true); 
     resultList.add(bean) 

    Now in the jsp you need to chang like this 
    <h:outputText value="#{_bssl.name}" rendered="{!_bssl.dummyRow}"/> 

К этому я могу создать пустую строку внизу, чтобы моя проблема была решена. Моя проблема не была способна просмотреть нижнюю часть строки из-за горизонтальной полосы прокрутки.

Смежные вопросы