GWT:如何为CellTable中的可编辑表格单元格分配ID?

时间:2011-11-18 17:17:27

标签: gwt celltable gwt-celltable

我正在使用GWT 2.4。我正在使用一些可编辑的表格单元构建一个CellTable。我的问题是,当渲染单元格时,如何强制使用输入标记中定义的“name”和/或“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>

虽然定义了“type”,“value”和“tabindex”,但没有“name”或“id”。试图找出如何做到这一点。谢谢, - 戴夫

1 个答案:

答案 0 :(得分:0)

你正在做super.render(...),我会自己渲染HTML,并手动输入input元素的名称和id值。我就这个概念回答了类似的问题here。想法略有不同,但实施将是相同的。