Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT-CellTable--设置行高亮显示时遇到问题_Java_Css_Gwt_Datagrid_Gwt Celltable - Fatal编程技术网

Java GWT-CellTable--设置行高亮显示时遇到问题

Java GWT-CellTable--设置行高亮显示时遇到问题,java,css,gwt,datagrid,gwt-celltable,Java,Css,Gwt,Datagrid,Gwt Celltable,因此,我对如何在我的Datagrid(据我所知,它可以使用cellTable可以使用的一切)中设置单个行的css有点困惑 首先,我有一个双击和单击处理程序,它在“onCellPreview”中被正确调用(必须删除selectionModel才能工作)。然后,我可以通过event.getIndex()获取行号 下一步是尝试为所选行设置CSS失败的地方,我的代码: int Row= event.getIndex(); myDataTable.setRowStyles(new RowStyles&l

因此,我对如何在我的Datagrid(据我所知,它可以使用cellTable可以使用的一切)中设置单个行的css有点困惑

首先,我有一个双击和单击处理程序,它在“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";
   }
});
  • 在my DataGridOverride.css中还有一个预先存在的css类(与“myDataGrid”所在的主css文件不同)。这个班是 “.dataGridSelectedRowCell”并具有背景色集(使用!重要),但它不起作用

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

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

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

    不需要从网格中删除样式名称

    编辑:

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


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

    这个问题解决了吗?仍在研究Andrei的建议。这确实解释了为什么从未调用setRowStyles(),感谢您的澄清!但是,我尝试了myDataTable.getRowElement(行).setClassName(“myDataGridSelectedRow”);事件虽然得到了正确的行元素信息和所有内容,但没有任何更改。我想其他地方的css可能会覆盖它,所以我删除了所有其他css,但仍然没有效果。你知道是什么原因造成的吗?DataGrid有自己的CSS。在CSS属性中添加“!important”。或者,您可以在构建DataGrid时传递CSSResource-我将使用此选项更新我的响应。我已经有css资源并尝试调用:myDataTable.getRowElement(row).setClassName(“DataGridSelectedRow”);但它没有起作用。此外,我删除了数据网格的任何其他背景样式,以确保它不是覆盖问题(单元格表背景现在已被分解为页面的背景颜色)。我也一直在用!一直都很重要,并将其保留在我的css中,以便进行这些更改。。。还是没用!尝试使用.getStyle().setBackgroundColor(“红色”)直接设置背景色。如果它不起作用,那么完全不同的东西在起作用。请注意,我在生产应用程序中使用了这段代码,它在所有浏览器中都能正常工作。我也试过了,但什么都没有。。。然而,我终于找到了解决办法!我删除了正在使用的cellPreview双击计数器,并尝试了使用SingleSelectionModel的DOM解决方案。不知怎的,当我这么做的时候,选择终于开始起作用了!所以,虽然你的回答并没有完全解决我的问题,但确实帮了我不少忙。非常感谢。
    myDataTable.getRowElement(i).getStyle()...
    
    myDataTable.getRowElement(i).setClassName("myDataGridSelectedRow");