1

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」は定義されません。これを行う方法を理解しようとしています。ありがとう - デイブ

4

1 に答える 1

0

あなたが行っている場所ではsuper.render(...)、代わりにその HTML を自分でレンダリングし、要素の名前と id 値をinput手動で貼り付けます。この概念に関する同様の質問に答えましたhere . アイデアは少し異なりますが、実装は同じです。

于 2011-11-18T19:48:54.767 に答える