GWT- CellTable - 设置行突出显示的麻烦

时间:2014-03-20 19:19:35

标签: java css gwt datagrid gwt-celltable

所以我对如何在我的Datagrid中设置单个行的css感到困惑(据我所知,它可以使用cellTable可以使用的所有内容)。

首先,我有一个双击和单击处理程序,可以在'onCellPreview'中正确调用(必须删除selectionModel才能使其工作)。然后我可以通过event.getIndex()获取行号。

接下来是我尝试为所选行设置CSS失败的地方,我的代码是:

int Row= event.getIndex();

myDataTable.setRowStyles(new RowStyles<String[]>(){
   @Override
   public String getStyleNames(String [] rowObject, int theRow){
      if (row== theRow){
          return "myDataGridSelectedRow";
      }
      else 
          return "myDataGrid";
   }
});

但是我不明白这是怎么回事(这也许就是为什么我不能让它起作用)

  1. 如何调用getStyleNames()?它只是在我的调试器中跳过它。
  2. 我的代码中应该将setRowStyles方法调用放在哪里?
  3. 我认为为了正常工作,我必须删除电话

     myDataTable.setStyleName("myDataGrid");
    
  4. 我的DataGridOverride.css中还有一个预先存在的css类(它与“myDataGrid”所在的主css文件不同)。这堂课是 “.dataGridSelectedRowCell”并具有背景颜色集(使用!important)但它不起作用。

1 个答案:

答案 0 :(得分:2)

仅在呈现表时才调用此方法setRowStyles()

您可以通过以下方式动态设置样式:

myDataTable.getRowElement(i).getStyle()...

myDataTable.getRowElement(i).setClassName("myDataGridSelectedRow");

您无需从网格中删除样式名称。

编辑:

另一种方法是覆盖标准DataGrid CSS资源:

How do I style a gwt 2.1 CellTables headers?

如果您想对默认的GWT DataGrid样式进行许多更改,我建议使用此方法。