我正在使用GWT
EditTextCell
,点击进入编辑模式。
有没有人知道通过程序代码强制盒子进入编辑模式的方法?
我是否必须以某种方式将ClickEvent
发射到那个盒子上?或者怎么做呢?
答案 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=true
或false
。
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>");
}
}