Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何覆盖DataGrid标头的GWT模糊样式_Css_Gwt_Datagrid_Overriding - Fatal编程技术网

Css 如何覆盖DataGrid标头的GWT模糊样式

Css 如何覆盖DataGrid标头的GWT模糊样式,css,gwt,datagrid,overriding,Css,Gwt,Datagrid,Overriding,我试图找出如何覆盖中定义的dataGridHeader样式!GWT核心。GWT样式名称被adler32混淆,因此我不能在css中简单地使用.dataGridHeader。在我的情况下,我希望一个简单的空白变化:正常 我在这里看到过关于注入css的文章,但它们似乎都是类级别的,而不是DataGrid之类的组件中使用的子样式 如何覆盖DataGrid等组件中使用的标题样式?与任何ClientBundle和CssResource一样:创建一个扩展DataGrid.Resources的接口,并使用指向您

我试图找出如何覆盖中定义的dataGridHeader样式!GWT核心。GWT样式名称被adler32混淆,因此我不能在css中简单地使用.dataGridHeader。在我的情况下,我希望一个简单的空白变化:正常

我在这里看到过关于注入css的文章,但它们似乎都是类级别的,而不是DataGrid之类的组件中使用的子样式


如何覆盖DataGrid等组件中使用的标题样式?

与任何
ClientBundle
CssResource
一样:创建一个扩展
DataGrid.Resources
的接口,并使用指向您自己的CSS文件的
@Source
注释覆盖
dataGridStyle
方法(或者可能同时添加到原始文件和您自己的文件,以便将它们组合在一起)

这样做将覆盖应用程序中所有
DataGrid
s的样式(实际上取决于
CssResource
实例获得
ensureInjected()
首先:来自原始
DataGrid.Resources
或来自子接口的样式):因为您使用相同的返回类型(
DataGrid.Style
),模糊化的类名将是相同的

如果您想逐个更改样式,那么,另外,声明一个扩展了
DataGrid.style
的接口,并将其用作
dataGridStyle
覆盖的返回类型:由于模糊化的类名基于接口完全限定名和方法名,因此
DataGrid.style
子接口将生成与原始
DataGrid.Style
接口不同的模糊化类名

当然,然后,
GWT.create()
您的
DataGrid.Resources
子接口,并将其作为参数传递给
DataGrid
构造函数

另请参见

谢谢托马斯

只是为了让读者更容易

创建一个新接口

public interface GwtCssDataGridResources extends DataGrid.Resources {
      @Source({Style.DEFAULT_CSS, "gwtDataGrid.css"})
      Style dataGrid();
}
使用静态引用

public static final GwtCssDataGridResources gwtCssDataGridResources = GWT.create(GwtCssDataGridResources.class);

    static {
        gwtCssDataGridResources.dataGrid().ensureInjected();
    }
最后创建一个新的CSS文件gwtDataGrid.CSS。请注意,如果需要覆盖样式,则必须在每个定义上使用!important

.dataGridHeader {
    color: #FF0000 !important;
}

.dataGridFirstColumnHeader {
    -moz-border-radius-topleft: 5px;
    -webkit-border-top-left-radius: 5px;
}

.dataGridLastColumnHeader {
    -moz-border-radius-topright: 5px;
    -webkit-border-top-right-radius: 5px;
}

就是这样

我能让你的第一个建议起作用,但我不能用Ensureject排序。任何一种排序都会导致使用原始css。查看DataGrid.java,它看起来总是使用自己的GWT.create结果。将其传递给构造函数起作用。`public interface MyResources extensed DataGrid.resourcces{@Source({DataGrid.Style.DEFAULT_CSS,“DataGrid.CSS”})DataGrid.Style dataGridStyle();}static MyResources resources=GWT.create(MyResources.class);`关于在个案基础上使用不同样式的部分救了我一命。谢谢:)