【问题标题】:GWT DataGrid change row font-sizeGWT DataGrid 更改行字体大小
【发布时间】:2016-04-26 10:15:11
【问题描述】:

我创建了一个 DataGrid。现在我希望用户能够单击带有 + 和 - 符号的按钮,以使数据网格中的文本更大或更小。

我知道我可以这样做:

DataGrid table = new DataGrid<Row>();
table.setRowStyles(new RowStyles<LogRow>() {
    @Override
    public String getStyleNames(LogRow row, int rowIndex) {
      return className;
    }
});

但我想动态更改字体。我的意思是“当前字体大小 + 1”或“当前字体大小 - 1”。

有办法吗?还是我必须为每个字体大小创建特殊的类?

我尝试在 GSS 中定义一个常量,它从我的类的“getFontSize()”方法中获取它的值,但它是一个 CONSTANT,所以它只会获得一次该值,然后忽略对 fontSize 属性的任何更改我的课。

我试过了

table.getElement().getStyle().setFontSize(newFontSize, Style.Unit.PX);

table.getRowContainer().getStyle().setFontSize(newFontSize, Style.Unit.PX);

但没有成功。也许我必须定位子元素?

感谢您的帮助。

【问题讨论】:

    标签: css gwt datagrid font-size


    【解决方案1】:

    在您的样式表中使用@eval。也许这个 sn-p 可以帮助你

    //refer to a method, that returns a string for your front size.
    //your can change the return value of getFontSize() at any time
    @eval FONT_SIZE com.your.app.client.css.getFontSize();
    @external .fontSize;
    .fontSize{
        font-size: FONT_SIZE;
    }
    

    然后注入你的样式,当你想改变字体大小时替换它:

    public class Css {
        public static String FONT_SIZE= "18px";
    
        public static String getFontSize() {
             return FONT_SIZE;
        }
    
        public Css(){
            CssResource res = GWT.create(YourRes.class);
            StyleElement styleElement = StyleInjector.injectStylesheet(res.getText());
            FONT_SIZE = "25px";
            StyleInjector.setContents(styleElement , res.getText());
        }
    }
    

    【讨论】:

    • 我使用的是 GSS,所以语法有点不同,但似乎是我想要的。我做了@def FONT_SIZE eval("package.function()");我只是不知道如何“重新评估”这个。所以我猜你的代码解决了这个问题,但是它似乎覆盖了我的样式(来自引导程序)并且完全弄乱了我的用户界面并且字体大小没有改变。一旦我开始工作,我就会接受你的回答:)
    • 好的,我可以注入我的 gss 文件,我看到其中的字体大小发生了变化。但是原始样式的类名是:“.C2PGHCB-f-q td”,但注入的类名是“.C2PGHCB-a-q td”,因此它不会覆盖以前的样式,因为它具有不同的名称。
    • 哦,我刚刚再次检查了我的示例...您必须将使用 @eval FONT_SIZ 的 css 类添加到 @external...创建类 .fontSIze 并将其添加到你的gridRows。所以只有这个.fontSize 不会被混淆。我会编辑我的帖子
    • 就是这样!!谢谢!不知道@external
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多