所選行的粗體樣式由richfaces附帶的樣式表管理。richfaces中的每個主題都有自己的樣式表。您可以參考official documentation (It is still a draft version)以查看哪些樣式類可用於自定義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
似乎是擴展表的行號。如果您想從UIExtendedDataTable
中獲得潛在對象(即InventoryItem
),則必須在調用getRowData()
以獲取實際對象之前,使用setRowKey(selectionKey)
設置要檢索的行號。因此,dataTable.setRowKey(selectionKey)
用於從UIExtendedDataTable
中獲取所選的InventoryItem
,以便將它們放入selectionItems
(將顯示在除擴展表之外的「選定行」框中)。對於Object originalKey = dataTable.getRowKey();
和dataTable.setRowKey(originalKey);
,您可以參考此link。
在richfaces 3.3中,我發現UIExtendedDataTable
有一個名爲setActiveRowKey()的方法,它似乎可以設置活動記錄。但它在最新版本的richfaces 4.0 CR1中被刪除。因此,也許你可以使用UIExtendedDataTable
's java script API來達到同樣的效果。
您首先在您的MBean中定義一個名爲boldRow
的int
屬性。然後你將有一個<a4j:commandButton>
來調用一個Mbean的方法。這個方法將根據你的邏輯分配你想要選擇的行號。該按鈕的oncomplete
屬性應調用UIExtendedDataTable
的JavaScript API來選擇哪一行的行號等於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>
感謝鏈接,但我還是不明白在http://docs.jboss.org/richfaces/latest_4_0_X/Component_Reference/en-US/html代碼/chap-Component_Reference-Tables_and_grids.html#exam-Component_Reference-richextendedDataTable-Selecting_multiple_rows,方法public void selectionListener()。有一行'dataTable.setRowKey(selectionKey)',總是遵循並由'dataTable.setRowKey(originalKey)'重寫。這是爲什麼?是否是rowKey負責粗線?我需要並通過API來控制這個大膽的選擇。 – Osw 2011-03-28 05:47:05
我已經更新了我的答案,希望對我有所幫助 – 2011-03-29 10:00:05
非常感謝,現在我明白了。 – Osw 2011-03-29 10:21:27