设置Listgrid(smartGWT)中的值

时间:2012-05-02 10:38:45

标签: gwt smartgwt gwt2 listgrid

我正在尝试使用智能Gwt,Listgrid。

我正在使用com.google.gwt.user.client.ui和smart gwt。 我在ListGridRecords []记录中有值。

我无法在表格中设置值。

这段代码是复合的。

public TableDocument(Action action) {
        initWidget(getTablePanel());
    }

private HorizontalPanel getTablePanel() {
        if (tablePanel == null) {
            tablePanel = new HorizontalPanel();
            tablePanel.setSize("144px", "75px");

            addtable();
        }

public void addtable() {
        // TODO Auto-generated method stub
        if(isDocumentPresent()==false){

            tablePanel.add(getNoDocumentLabel());
        }else{
            tablePanel.remove(noDocumentLabel);
            tablePanel.add(getDocumentTable()); <-- Error

        }
    }
private ListGrid getDocumentTable() {
        if (documentTable == null) {
            documentTable = new ListGrid();
            documentTable.setSize("644px", "379px");
            documentTable.setCanResizeFields(true);

            documentTable.setFields(getStatus(),getIcon(),getName(),getSize(),getModifiedby(),getModifiedDate(),getMajorVersiosn());
            addValuesToTable();
        }
        return documentTable;
    }

public ListGridField getStatus() {
        if (status == null) {
            status = new ListGridField("statusIcon","");
        }
        return status;
    }
public ListGridField getIcon() {
        if (icon == null) {
            icon = new ListGridField("documentIcon","");
        }
        return icon;
    }
.
.
.// similar code for getSize(),getModifiedby(),getModifiedDate(),getMajorVersiosn()

private void addValuesToTable() {
documentTable.setData(documentsArray);//documentarray is records
}


----------
error

    com.smartgwt.client.core.JsObject$SGWT_WARN: 12:15:47.778:WARN:ListGrid:isc_ListGrid_0:Unable to find clipHandle for drawn Canvas, elementId: isc_0
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        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.smartgwt.client.widgets.grid.ListGrid.create(ListGrid.java)
        at com.smartgwt.client.widgets.BaseWidget.getOrCreateJsObj(BaseWidget.java:361)
        at com.smartgwt.client.widgets.BaseWidget.getElement(BaseWidget.java:276)
        at com.smartgwt.client.widgets.BaseWidget.getElement(BaseWidget.java:264)
        at com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:94)
        at com.google.gwt.user.client.ui.HorizontalPanel.add(HorizontalPanel.java:49)
        at com.client.SmartGuI.TableDocument.addtable(TableDocument.java:158)
        at com.client.GUI.TreeCmis$2.onSuccess(TreeCmis.java:157)
        at com.client.GUI.TreeCmis$2.onSuccess(TreeCmis.java:1)
        at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:232)
        at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
        at 

1 个答案:

答案 0 :(得分:1)

我建议不要混用GWT UI和SmartGWT。尝试仅使用SmartGWT,看看问题是否消失。

您可以通过HLayout(即SmartGWT)替换Horizo​​ntalLayout(我认为是GWT)来开始。

引自:http://forums.smartclient.com/showthread.php?t=8159

  

Smart GWT具有互操作性支持,允许Smart GWT小部件   要添加到GWT容器并允许添加GWT窗口小部件   一个Smart GWT容器,适合用于:

     
      
  • 向Smart GWT的增量迁移,例如引入单一的,复杂的Smart GWT   诸如Calendar或CubeGrid之类的组件到现有的GWT应用程序

  •   
  • 在Smart GWT中使用复杂的第三方GWT小部件,而Smart GWT则没有   相应的内置功能

  •   
     

然而,自由混合Smart GWT和GWT是没有意义的   (或其他)组件,例如,您不应放置GWT   Smart GWT容器中的小部件,它们又在GWT内   容器。一般情况下,除非需要a,否则不要混用小部件   特征迫使你去。

     

原因是最大程度有限制   两个Ajax小部件工具包(包括GWT)可以互操作 - 有   没有允许在管理领域实现互操作性的标准   选项卡顺序,zIndex管理,像素完美布局,第508节   可访问性和多级模态。

     

请注意,在混合GWT和Smart GWT时会报告“错误”   不恰当地(也就是说,与这些指导方针相矛盾)   一般会被标记为WONTFIX,虽然我们会重新考虑这个   未来,如果核心GWT开始支持更好的API   互操作性。