GWT: Как назначить идентификатор для редактируемых ячеек таблицы в CellTable? - PullRequest
1 голос
/ 18 ноября 2011

Я использую 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 голосов
/ 18 ноября 2011

Там, где вы делаете super.render(...), я бы вместо этого сам отображал этот HTML и вставлял имя и идентификатор для элемента input вручную.Я ответил на аналогичный вопрос по этому понятию здесь .Идея немного отличается, но реализация будет такой же.

...