如何通过程序代码将EditTextBox设置为编辑模式?

时间:2013-02-23 13:43:37

标签: java gwt

我正在使用GWT EditTextCell,点击进入编辑模式。 有没有人知道通过程序代码强制盒子进入编辑模式的方法?

我是否必须以某种方式将ClickEvent发射到那个盒子上?或者怎么做呢?

3 个答案:

答案 0 :(得分: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中,以免在单元格准备接受焦点之前过早触发。

答案 1 :(得分:0)

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

NativeEvent nativeevent = Document.get().createClickEvent(1, 0, 0, 0, 0, false, false, false, false);
cell.getElement().dispatchEvent(nativeevent);

答案 2 :(得分: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>");  

         }
    }