Индекс строки таблицы данных JSF 2 без модели данных
Я использовал UI: повторить для создания таблиц. С помощью пользовательского интерфейса: повторить, можно легко пронумеровать строки, используя varStatus
, Я использую идентификаторы строки из varStatus при вызове вспомогательного компонента для обработки навигации по списку, например, при перемещении элемента вверх или вниз по списку.
Теперь я хотел бы создать составной компонент, который создает настраиваемую таблицу со всеми функциями, необходимыми для маркировки строк, перемещения их вверх / вниз и т. Д. Для этого пользовательский интерфейс: repeat не будет работать, так как я не вижу способа обработки разного количества столбцов; Мне нужно указать заголовки в одном месте, а тело - в другом (и я не достиг точки знания, где я могу создать пользовательский компонент). Поэтому я перешел к datatable вместо этого, поскольку использование этого означает указание заголовков в качестве фасетов в том же месте, что и содержимое тела.
Это работало хорошо, пока я не заметил, что по какой-то причине не было varStatus
больше. Я вложил много работы в представление списка без необходимости datamodel
и я не хочу начинать использовать это. Есть ли способ получить текущий номер строки, как он отображается в таблице, без использования datamodel
?
Также я использую viewScope, и если я правильно понял, это означает, что я не могу привязать dataTable к bean-компоненту.
1 ответ
Просто свяжите таблицу с самим представлением, а не с бобом.
<h:dataTable binding="#{table}" ...>
Тогда вы можете использовать #{table.rowIndex}
где необходимо. Например
<h:column>#{table.rowIndex + 1}</h:column>