Im爲DataGrid設置自定義CssResource。如何將特定樣式添加到選定行中的列DataGrid GWT
表中的第一列是具有特定樣式的有序列。 所以當選擇行時,我需要爲訂單欄設置另一個特定樣式。
類似的東西:
Im爲DataGrid設置自定義CssResource。如何將特定樣式添加到選定行中的列DataGrid GWT
表中的第一列是具有特定樣式的有序列。 所以當選擇行時,我需要爲訂單欄設置另一個特定樣式。
類似的東西:
您可以覆蓋.getCellStyleNames
方法爲您列:
Column<Object, String> numberColumn = new Column<Object, String>(new TextCell()) {
@Override
public String getCellStyleNames(Context context, Object object) {
if (selectionModel.isSelected(object)) {
return "boldStyle";
}
};
工作很漂亮。謝謝,但不適用於'NoSelectionModel'。 – formatqs
你在你的問題中提到「何時選中一行」。無論您決定是否選擇一行,都無關緊要 - 將selectionModel.isSelected()替換爲您使用的任何內容。 –
嘗試用AbstractHasData#addCellPreviewHandler()。
dataGrid.addCellPreviewHandler(new Handler<T>() {
@Override
public void onCellPreview(CellPreviewEvent<T> event) {
if ("click".equals(event.getNativeEvent().getType())) {
table.getRowElement(event.getIndex()).getCells().getItem(0).getStyle()
.setBackgroundColor("#444444");
}
}
});
注意:此代碼適用於SingleSelectionModel
。如果你需要MultiSelectionModel
,那麼對所有選定的行都做同樣的事情。
如果您有選擇模型,則可以簡單地添加一個SelectionChangeHandler。 –
@AndreiVolgin如何讓'SelectionChangeHandler'中的'TableCellElement'改變風格? – Braj
其實,有一個更簡單的解決方案。看到我的答案。 –
我嘗試.class.class方法'.dataGridKeyboardSelectedRowCell.specificStyle { 背景顏色:#444444重要; }'但不起作用 – formatqs