我正在尝试更新鼠标悬停时的行样式。
mappings.addCellPreviewHandler(new Handler<MappingInstructionVO>() {
@Override
public void onCellPreview(CellPreviewEvent<MappingInstructionVO> event) {
if (BrowserEvents.MOUSEOVER.equals(event.getNativeEvent().getType())) {
mappings.getRowElement(event.getValue().getExecutionOrder()).getStyle().setBorderColor("Red");
}
});
我可以使用以下方法成功获取行内容:
mappings.getRowElement(event.getValue().getExecutionOrder() - 1).getInnerText());
知道为什么
mappings.getRowElement(event.getValue().getExecutionOrder()).getStyle().setBorderColor("Red");
没有效果?
由于
答案 0 :(得分:1)
DataGrid在其默认dataGridHoveredRow
中定义了DataGrid.Resources
样式。一种选择是在您自己的ClientBundle中覆盖此样式。
否则,请尝试
.getStyle().setProperty("border", "1px solid red");
编辑:
您必须在DataGrid上设置“border-collapse:collapse”。
从CSS2规范:
在[border-collapse:separate model]中,每个单元格都有一个单独的 边界。 [...]行,列,行组和列组不能有 边框(即,用户代理必须忽略这些边框属性 元件)。