2011-06-06 114 views
0

我正在使用GWT构建表格。当我点击一个EditTextCell时,为什么我会得到一个JavascriptException“no method'focus'”?

我想要的字段是EditTextCell。它呈现OK开始,但后来当我点击它,使之变成一个TextInputCell,我看到在Eclipse以下异常:

15:13:22.428 [ERROR] [xxx] Uncaught exception escaped 

com.google.gwt.core.client.JavaScriptException: (TypeError): Object [object Text] has no method 'focus' 
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237) 
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:132) 
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
at com.google.gwt.core.client.impl.Impl.apply(Impl.java) 
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214) 
at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:167) 
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281) 
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531) 
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) 
at java.lang.Thread.run(Thread.java:680) 

相关代码:

private void buildTable() { 
    // Create a celltable 
    final CellTable<Person> personTable = new CellTable<Person>(KEY_PROVIDER); 
    // Create name column 
    final EditTextCell nameCell = new EditTextCell(); 
    Column<Person, String> nameColumn = new Column<Person, String>(nameCell) { 
    @Override 
    public String getValue(Person person) { 
     return person.getName(); 
    } 
    }; 
    nameColumn.setFieldUpdater(new FieldUpdater<Person,String>() { 
    public void update(int index, Person object, String value) { 
     System.out.println("field updater called"); 
    } 
    }); 
    // Make the name column sortable. 
    nameColumn.setSortable(true); 
    personTable.addColumn(nameColumn, "Name"); 
    // ... and then code for other columns... 
} 

有谁对我为什么会得到我所看到的异常有线索?

回答

0

我不知道这个特定错误的原因是什么,但我也遇到过这个问题。

我能够解决这个使用DataProvider,在我的情况下AsyncDataProvider更具体。但是,您可以在示例中使用ListDataProvider。您可以在Google code developer's guide找到更多关于DataProviders的信息。

您可能想要检查GWT Showcase page,并检查示例java代码。

相关问题