除了引用包含一些“CssResource”并使用 ClientBundle 获取它之外,我在文档中什么都看不到,但是我如何准确地覆盖 CellTable 的 tbody 和 th?
这可能吗?
创建接口:
interface TableResources extends CellTable.Resources {
@Source({CellTable.Style.DEFAULT_CSS, "<your css file>.css"})
TableStyle cellTableStyle();
}
interface TableStyle extends CellTable.Style {
}
并初始化单元格表:
CellTable.Resources resources = GWT.create(TableResources.class);
table = new CellTable<SomeProxy>(rowSize, resources);
在 cellview.client 包中,您可以找到默认的 gwt css 文件。你用这些作为你的起点。在"<your css file>.css"
把你具体的风格变化。
您还可以设置列样式(在 col 元素上):
table.addColumnStyleName(colNumer, "some_css_style_name");
或者更好地使用 css 资源名称而不是字符串“some_css_style_name”。
只是为了好玩,我可能会添加一些我只是头疼的东西......如果你改变 cellTableStyle(); 其他东西它会破坏......没有警告或错误,CSS只是没有像我想象的那样出现。不知道这是在哪里记录的,但是我在尝试了很多尝试找出为什么有些 CSS 正确而有些不正确之后才发现它。
由于某种原因,我的 cellTable.addColumnStyleName(colNumber, "cssStyle") 无法正常工作。根据 FireBug,无论如何它都不会添加样式(如果样式不正确,它至少可以将其添加到 th 元素的 classes 属性中......)。也许是因为我正在重新绘制列,但这很奇怪。
我已经使用了上面的解决方案,但是,如果您有另一个具有默认样式的表格,它最终会使用您的自定义表格。您是否需要使用自定义样式覆盖所有表格,或者是否有一些解决方法?
此外,我发现 CellTable 构造函数不是最佳的......我必须指定 pageSize 来指定样式资源 CellTable(pageSize,resources)......我一直在为 pageSize 放置 Integer.MAX_VALUE,不确定是否应该是 - 1 或其他值,因为该值没有 javadoc。