Java GWT-CellTable--设置行高亮显示时遇到问题
因此,我对如何在我的Datagrid(据我所知,它可以使用cellTable可以使用的一切)中设置单个行的css有点困惑 首先,我有一个双击和单击处理程序,它在“onCellPreview”中被正确调用(必须删除selectionModel才能工作)。然后,我可以通过event.getIndex()获取行号 下一步是尝试为所选行设置CSS失败的地方,我的代码: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
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";
}
});
此方法
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");