0

我试图覆盖 GWT DataGrid 组件的样式,如下所述:

DataGrid / CellTable 样式受挫——覆盖行样式

我的界面

public interface DataGridResources extends DataGrid.Resources {
@Source({ DataGrid.Style.DEFAULT_CSS, "myDataGrid.css" })
DataGrid.Style dataGrid();
}

public static final DataGridResources dataGridResources = 

使用接口的 Datagrid 实例

GWT.create(DataGridResources.class);

static {
    dataGridResources.dataGrid().ensureInjected();
}

...

dataGrid = new DataGrid<User>(10, dataGridResources);

但我收到以下错误:

Rebinding xxx.DataGridResources
-Invoking generator com.google.gwt.resources.rebind.context.InlineClientBundleGenerator
--Creating assignment for dataGrid()
---Creating image sprite classes
----Unable to find ImageResource method value("cellTableLoading") in xxx.DataGridResources : Could not find no-arg method named cellTableLoading in type xxx.DataGridResources
--Generator 'com.google.gwt.resources.rebind.context.InlineClientBundleGenerator' threw an exception while rebinding 'xxx.DataGridResources'
-Deferred binding failed for 'xxx.DataGridResources'; expect subsequent failures
4

1 回答 1

0

以下作品。真的。

public interface Resources extends DataGrid.Resources {

  interface Style extends DataGrid.Style { }

  @Source(value = {DataGrid.Style.DEFAULT_CSS, "myDataGrid.css"})
  public Style dataGridStyle();
}

你也不需要打电话ensureInjected(),因为DataGrid会为你打电话。

无论如何,错误日志中有一些错误:它查找cellTableLoading不属于DataGrid.Resources界面的样式(属于CellTable.Resources)。您是否留下了一些myDataGrid.css未在原始界面中定义的虚假 CSS 类?

也许您只是简单地CellTableDataGrid命名了 css,但没有更改内部类名称。

于 2013-07-05T12:44:02.507 回答