1

我正在使用 GWT 2.4。我正在构建一个带有一些可编辑表格单元格的 CellTable。我的问题是,当单元格被渲染时,我如何强制它们使用输入标签中定义的“名称”和/或“id”属性来渲染?现在,我用于渲染单元格的代码是......

class EditableTableCell extends TextInputCell {
    private final List<Node> colData;

    public EditableTableCell(final List<Node> colData) { 
        super();
        this.colData = colData;
    }

    @Override
    public void render(Context context, String value, SafeHtmlBuilder sb) {
        final Integer index = context.getIndex();
        final Node childNode = colData.get(index); 

        if (childNode.getAttributes() != null && 
            childNode.getAttributes().get("edit") != null &&
            childNode.getAttributes().get("edit").getValue() != null &&
            childNode.getAttributes().get("edit").getValue().equalsIgnoreCase("yes")) { 
            super.render(context,value,sb);
        } else { 
            sb.appendEscaped(value);
        }   // if
    }
}

如果单元格是可编辑的,则生成的 html 看起来像...

<td class="GCSPOWVPD GCSPOWVBE GCSPOWVCE GCSPOWVME">
    <div style="outline:none;" tabindex="0">
        <input type="text" value="\n\t\t\tABC\n\t\t" tabindex="-1"></input>
    </div>
</td>

尽管定义了“类型”、“值”和“标签索引”,但没有定义“名称”或“ID”。试图弄清楚如何做到这一点。谢谢, - 戴夫

4

1 回答 1

0

在你正在做的地方super.render(...),我会自己呈现该 HTML,并input手动为元素添加名称和 id 值。我在这里回答了关于这个概念的类似问题。想法略有不同,但实现是相同的。

于 2011-11-18T19:48:54.767 回答