如何在不使用UiBinder的情况下将CellTable.Style与GWT 2.7.0一起使用?

时间:2017-03-10 16:59:43

标签: java css gwt gwt-celltable gwt-2.7

几周前我加入了一个GWT应用项目。代码库是在2009年开始的。我正在尝试用CellTable替换FlexTable,以便我可以利用可排序的列。该项目中当前版本的GWT是2.7.0,但仔细查看代码,看起来仍然有一些功能已经过时了。我是GWT的新手,我可能是错的。

到目前为止,事情在功能上都很好。但是,GWT似乎压倒了我更新CSS的尝试。我使用GWT dynatablerf sample作为模型将CSS添加到CellTable。 TimeSlotWidget使用CellTable.Style:

  interface TableResources extends CellTable.Resources {
    @Override
    @Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
    CellTable.Style cellTableStyle();
  }

然后将其应用于CellTable,如下所示:

 table = new CellTable<TimeSlotListWidget.ScheduleRow>(ROWS_IN_A_DAY,
        GWT.<TableResources> create(TableResources.class));

我试图在我的代码中使用这种方法。我甚至从值列表中省略了CellTable.Style.DEFAULT_CSS并创建了我自己的CSS样式表,该样式表作为GWT CellTable.css

的副本开始

我注意到带有UIBinder的GWT TimeSlotListWidget sample has an ui.xml文件。我的项目目前没有使用UIBinder。

当我运行我的代码时,页面中插入了<style>块,似乎是标准的GWT CellTable.css。然后直接在我的CSS中插入另一个<style>块。我的CSS并没有覆盖标准的GWT CSS。

如何防止插入GWT CellTable.css?为什么要插入?

1 个答案:

答案 0 :(得分:2)

问题在于,在您的代码中,您重用了@Html.Partial("UserControl/Calendar", Model.DOB),并且两个不同的ClientBundle使用了相同的类型,但每个都将自己的CSS绑定到它。

相反,扩展CellTable.Style界面,并在 捆绑包中使用该界面:

CellTable.Style