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