0

我正在使用GWTa EditTextCell,它在点击时进入编辑模式。有人知道通过程序代码强制框进入编辑模式的方法吗?

我必须以某种方式ClickEvent向那个盒子开火吗?或者如何做到这一点?

4

3 回答 3

0

您可以将以下方法添加到您的 CellTable 或 DataGrid:

public void focus(final int row, final int column) {
    Scheduler.get().scheduleDeferred(new ScheduledCommand() {

        @Override
        public void execute() {
            getRowElement(row).getCells().getItem(column).getFirstChildElement().getFirstChildElement().focus();
        }
    });
}

.focus(row, column)然后,当您需要将焦点设置在给定单元格上时,您可以简单地调用。

或者您可以.getRowElement()...直接调用,但我建议将其包装在 ScheduledCommand 中,这样它就不会过早触发 - 在单元格准备好接受焦点之前。

于 2013-02-23T18:20:38.317 回答
0

事实证明,我可以在我的单元格上触发原生点击事件,如下所示:

NativeEvent nativeevent = Document.get().createClickEvent(1, 0, 0, 0, 0, false, false, false, false);
cell.getElement().dispatchEvent(nativeevent);
于 2013-02-24T18:14:58.907 回答
0

您还可以编写render事件或添加clickHandler用于设置contentEditable=truefalse

private class CustomEditCell extends EditTextCell {

        public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {

            sb.appendHtmlConstant("<div contentEditable='true' unselectable='true' >"+value+"</div>");  

         }
    }
于 2013-02-25T05:22:07.390 回答