【问题标题】:GWT Style Not Working in AbstractCellGWT 样式在 AbstractCell 中不起作用
【发布时间】:2012-01-09 23:33:13
【问题描述】:

我正在尝试为我的 GWT CellTable 创建自定义单元格渲染器。我正在尝试在单元格内设置 CSS 样式,但由于某种原因它没有呈现。

这是我的自定义单元格渲染器

static class MyStringCell extends AbstractCell<String> implements Cell<String> {

    interface UncheckedStringTemplate extends SafeHtmlTemplates {
        @SafeHtmlTemplates.Template("<div style=\"{0}\"><input type=\"checkbox\"/>{1}</div>")
        SafeHtml cell(SafeStyles styles, SafeHtml vendorName);
    }
    private static UncheckedStringTemplate uncheckedStringTemplate = GWT.create(UncheckedStringTemplate.class);

    @Override
    public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
        if (value == null) {
            return;
        }

        SafeHtml vendorName = SafeHtmlUtils.fromString(value);
        SafeStyles styles = SafeStylesUtils.fromTrustedString("noaccess;");                                             
        SafeHtml rendered = uncheckedStringTemplate.cell(styles, vendorName);   
        sb.append(rendered);

    }
}        

这里是我调用渲染器的地方

Column<MyObject, String> userNameSelectedColumn = new Column<MyObject, String>(new MyStringCell()) {
    @Override
    public String getValue(MyObject myObject) {
        return myObject.getName();
    }
};      
vendorPermissions.addColumn(userNameSelectedColumn, "Objects w/ checkboxes");

这段代码生成了这个 HTML 片段(注意空样式)

<div style=""><input type="checkbox">Vendor 1</div>

所有这一切都紧跟the GWT example for Creating Custom Cells,我无法弄清楚这是哪里出了问题 - 或者它是否是一个错误。

然而,我已经使用 GWT 调试器检查了渲染的字符串,并且它似乎确实在其中包含样式信息 - 因此它在 GWT 管道的某个位置被删除,在它到达我之前浏览器。

有什么想法吗?

【问题讨论】:

    标签: gwt gwt-celltable


    【解决方案1】:

    没关系 - 我做错了。如果我做类似的事情,这种风格就会起作用

    SafeStyles styles = SafeStylesUtils.fromTrustedString("width: 100%;");

    而不是我在做的废话。 GWT 必须有一些过滤器来删除无意义的样式。

    我试图做的是使用这种错误的机制设置 CSS 类属性。在 Abstract 类使用的 HTMLTemplate 中设置类属性是可以预见的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多