我正在使用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”。试图找出如何做到这一点。谢谢, - 戴夫
答案 0 :(得分:0)
你正在做super.render(...)
,我会自己渲染HTML,并手动输入input
元素的名称和id值。我就这个概念回答了类似的问题here。想法略有不同,但实施将是相同的。