Полужирный стиль для выбранной строки управляется таблицей стилей, поставляемой с richfaces. Каждая тема в richfaces имеет свою собственную таблицу стилей.Вы можете обратиться к официальной документации (это все еще черновая версия) , чтобы увидеть, какие классы стилей доступны для настройки внешнего вида rich:extendedDataTable
.
Например, rf-edt-r-sel
или rf-edt-r-act
определяют стиль выбранной строки, вы можете переопределить их, объявив стиль для имен этих классов стилей на странице, где вы используете rich:extendedDataTable
<style type="text/css">
.rf-edt-r-sel{
background-color: yellow;
}
.rf-edt-r-act{
font-weight: bold;
color: red;
}
</style>
Ответ на комментарий:
Кажется, что RowKey
- это номер строки расширенной таблицы.Если вы хотите получить базовый объект (то есть InventoryItem
) из UIExtendedDataTable
, вам нужно установить номер строки, которую вы хотите получить, используя setRowKey(selectionKey)
, прежде чем вызывать getRowData()
, чтобы получить реальный объект.Таким образом, dataTable.setRowKey(selectionKey)
используется для получения выбранных InventoryItem
из UIExtendedDataTable
, чтобы поместить их в selectionItems
(который будет отображаться в поле «Выбранные строки», которое находится помимо расширенной таблицы).Для целей Object originalKey = dataTable.getRowKey();
и dataTable.setRowKey(originalKey);
вы можете обратиться к этой ссылке .
В richfaces 3.3 я нахожу, что UIExtendedDataTable
имеет метод setActiveRowKey (), который, по-видимому, может устанавливать активную запись.Но он удален в последней версии richfaces 4.0 CR1. Так что, возможно, вы можете использовать java-скрипт UIExtendedDataTable
для достижения того же эффекта.
Сначала вы определяете свойство int
с именем boldRow
в вашем MBean.Затем у вас будет <a4j:commandButton>
для вызова метода Mbean. Этот метод назначит номер строки, которую вы хотите выбрать в соответствии с вашей логикой.Атрибут oncomplete
кнопки должен вызывать API JavaScript UIExtendedDataTable
, чтобы выбрать строку с номером строки, равным boldRow
, а затем использовать атрибут render
для обновления UIExtendedDataTable
.Так что <a4j:commandButton>
и <rich:extendedDataTable>
должны выглядеть примерно так:
<a4j:commandButton value="Submit" action = "#{MBean.action}" render="#{rich:clientId('table')}"
oncomplete="#{rich:component('table')}.selectRow(#{MBean.boldRow}); #{rich:component('table')}.setActiveRow(#{MBean.boldRow});" />
<rich:extendedDataTable id="table" .....
................
</rich:extendedDataTable>