以编程方式更新GWT CellTable行样式

时间:2016-03-19 12:15:09

标签: gwt gwt-celltable

我正在尝试更新鼠标悬停时的行样式。

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");

没有效果?

由于

1 个答案:

答案 0 :(得分:1)

DataGrid在其默认dataGridHoveredRow中定义了DataGrid.Resources样式。一种选择是在您自己的ClientBundle中覆盖此样式。

否则,请尝试

.getStyle().setProperty("border", "1px solid red");

编辑:

您必须在DataGrid上设置“border-collapse:collapse”。

从CSS2规范:

  

在[border-collapse:separate model]中,每个单元格都有一个单独的   边界。 [...]行,列,行组和列组不能有   边框(即,用户代理必须忽略这些边框属性   元件)。