【问题标题】:How do I style a gwt 2.1 CellTables headers?如何设置 gwt 2.1 CellTables 标题的样式?
【发布时间】:2011-05-10 19:57:45
【问题描述】:

除了包含一些“CssResource”并使用 ClientBundle 获取它的引用之外,我在文档中看不到任何内容,但是我如何准确地覆盖 CellTable 的 tbody 和 th?

这可能吗?

【问题讨论】:

    标签: gwt view uibinder gwt2


    【解决方案1】:

    创建接口:

      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 文件。你用这些作为你的起点。在"&lt;your css file&gt;.css" 里放你具体的风格变化。

    你还可以设置列样式(在 col 元素上):

    table.addColumnStyleName(colNumer, "some_css_style_name");
    

    或者更好地使用css资源名称而不是字符串“some_css_style_name”。

    【讨论】:

    • 如何将 CellTable.Resources 和 CellTable 与 UiBinder 一起使用?我无法使用 (rowSize, resouces) 构建我的表,我用 UiField 对其进行了注释,但这不起作用。
    • @UiField(provided = true) 与 CellTable 一起使用。这样 UiBinder 就知道你在代码中创建了表。
    【解决方案2】:

    只是为了好玩,我可能会添加一些我只是头疼的东西......如果你改变 cellTableStyle();其他东西它会破坏......没有警告或错误,CSS只是没有像我想象的那样出现。不知道这是在哪里记录的,但是在尝试找出为什么有些 CSS 正确而有些不正确之后,我发现了它。

    【讨论】:

      【解决方案3】:

      由于某种原因,我的 cellTable.addColumnStyleName(colNumber, "cssStyle") 无法正常工作。根据 FireBug,无论如何它都不会添加样式(如果样式不正确,它至少可以将其添加到 th 元素的 classes 属性中......)。也许是因为我正在重绘列,但这很奇怪。

      【讨论】:

        【解决方案4】:

        我已经使用了上面的解决方案,但是,如果您有另一个具有默认样式的表格,它最终会使用您的自定义表格。您是否需要使用自定义样式覆盖所有表格,还是有一些解决方法?

        另外,我发现 CellTable 构造函数不是最优的...我必须指定 pageSize 来指定样式资源 CellTable(pageSize, resources)...我一直在为 pageSize 放置 Integer.MAX_VALUE,不确定是否如此应该是 -1 或其他值,因为该值没有 javadoc。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多