【问题标题】:GWT- CellTable--Trouble with setting row highlightingGWT- CellTable - 设置行突出显示的问题
【发布时间】:2014-03-20 19:19:34
【问题描述】:

所以我对如何在我的 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),但它不起作用。

【问题讨论】:

  • 这个问题解决了吗?
  • 仍在研究 Andrei 的建议。

标签: java css gwt datagrid gwt-celltable


【解决方案1】:

这个方法setRowStyles()只有在表格被渲染的时候才会被调用。

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

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

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

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

编辑:

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

How do I style a gwt 2.1 CellTables headers?

如果您想对默认 GWT DataGrid 样式进行许多更改,我会推荐这种方法。

【讨论】:

  • 这确实解释了为什么 setRowStyles() 从未被调用过,感谢您清除它!但是,我尝试了 myDataTable.getRowElement(row).setClassName("myDataGridSelectedRow");和事件虽然它得到了更正的行元素信息和一切,但没有任何改变。我想也许其他地方的一些 CSS 可能会覆盖它,所以我删除了所有其他 CSS,但仍然没有效果。知道是什么原因造成的吗?
  • DataGrid 有自己的 CSS。将“!important”添加到您的 CSS 属性中。或者,您可以在构建 DataGrid 时传递 CSSResource - 我将使用此选项更新我的响应。
  • 我已经有 css 资源并尝试调用:myDataTable.getRowElement(row).setClassName("DataGridSelectedRow");它没有用。此外,我删除了我可以为数据网格找到的任何其他背景样式,以确保它不是覆盖问题(单元格表背景现在已被排除为页面的背景颜色)。我也一直在使用 !important 并将其留在我的 css 中以进行这些更改......仍然没有任何效果!
  • 尝试直接设置背景颜色,使用.getStyle().setBackgroundColor("red")。如果它不起作用,那么完全不同的东西在起作用。请注意,我在生产应用程序中使用此代码,它在所有浏览器中都按预期工作。
  • 我也试过了,但什么也没...但是我终于找到了解决方案!我删除了我正在使用的 cellPreview 双击计数器,并尝试了使用 SingleSelectionModel 的 DOM 解决方案。不知何故,一旦我这样做了,on选择终于开始起作用了!因此,虽然您的回答并没有完全解决我的问题,但它确实有很大帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多