2011-04-06 1 views
3

를 사용 listgrid 버튼을 추가하고 내가하는 내가 버튼을 동적으로 사용 canvas.it가 잘 작동하지만, exception.It을주고 추가하고 listgrid 한 예외하면서 예외를 발생 때 ListGrid.setData (기록은)가 SmartGwt : 나는 smartgwt2.4을 사용하고 캔버스

이 내가 그리드 .. 그리고에 버튼을 추가하는 캔버스를 사용하고 방법을 보여주는 코드입니다 .....

com.smartgwt.client.core.JsObject$SGWT_WARN: 12:15:12.808:WARN:Button:isc_Button_0:ignoring bad or negative top: NaN [enable 'sizing' log for stack trace] 
    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:157) 
    at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1713) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:284) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107) 
    at com.smartgwt.client.widgets.BaseWidget.setProperty(BaseWidget.java) 
    at com.smartgwt.client.widgets.BaseWidget.setAttribute(BaseWidget.java:628) 
    at com.smartgwt.client.widgets.grid.ListGrid.setData(ListGrid.java:9621) 
    at com.prolinkdpocadmin.client.widgets.DeduplicationContentGrid.fillGridFromJson(DeduplicationContentGrid.java:213) 
    at com.prolinkdpocadmin.client.widgets.DeduplicationContainer.setDataInGrid(DeduplicationContainer.java:104) 
    at com.prolinkdpocadmin.client.widgets.DeduplicationContainer.access$0(DeduplicationContainer.java:101) 
    at com.prolinkdpocadmin.client.widgets.DeduplicationContainer$1.onSuccess(DeduplicationContainer.java:46) 
    at com.prolinkdpocadmin.client.widgets.DeduplicationContainer$1.onSuccess(DeduplicationContainer.java:1) 
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:216) 
    at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287) 
    at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:393) 
    at sun.reflect.GeneratedMethodAccessor15.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:157) 
    at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1713) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264) 
    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:188) 
    at sun.reflect.GeneratedMethodAccessor9.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:157) 
    at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1668) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222) 
    at java.lang.Thread.run(Thread.java:662) 

날 좀 도와주세요 .. 다음과 같이 called.Stacktrace이입니다 listgrid 및 listGridField에 설정된 모든 propeties ...............

lgfprimaryCompanyName = 새 ListGridField ("pCompany", "Primary Company"); lgfprimaryCompanyName.setWidth (250); lgfprimaryCompanyName.setAlign (Alignment.LEFT);

lgfmarkPrimaryAsDuplicate = new ListGridField("MarkPrimaryDuplicate", "Mark As Duplicate"); 
    lgfmarkPrimaryAsDuplicate.setWidth(130); 
    lgfmarkPrimaryAsDuplicate.setCanSort(false); 
    lgfmarkPrimaryAsDuplicate.setAlign(Alignment.CENTER); 

    // lgfmarkPrimaryAsDuplicate.addRecordClickHandler(this); 

    lgfduplicateCompanyName = new ListGridField("dCompany", "Duplicate Company"); 
    lgfduplicateCompanyName.setWidth(250); 
    lgfduplicateCompanyName.setAlign(Alignment.LEFT); 

    lgfmarkDuplicateAsDuplicate = new ListGridField("MarkDuplicateDuplicate", "Mark as Duplicate"); 
    lgfmarkDuplicateAsDuplicate.setWidth(130); 
    lgfmarkDuplicateAsDuplicate.setCanSort(false); 
    lgfmarkDuplicateAsDuplicate.setAlign(Alignment.CENTER); 

    // lgfmarkDuplicateAsDuplicate.addRecordClickHandler(this); 

    lgDuplicateCompany = new ListGrid() { 

       @Override 
       protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) { 

        String fieldName = this.getFieldName(colNum); 
        if (fieldName.equals("MarkPrimaryDuplicate")) { 
         Button btnMarkPrimaryAsDuplicate = new Button(); 
         btnMarkPrimaryAsDuplicate.setTitle("" + record.getAttribute("MarkPrimaryDuplicate")); 
         btnMarkPrimaryAsDuplicate.addClickHandler(new ClickHandler() { 

          @Override 
          public void onClick(ClickEvent event) { 
           Window.alert("button in column 2 is clicked"); 

            } 
           } 

          } 

         }); 
         return btnMarkPrimaryAsDuplicate; 

        } else if (fieldName.equals("MarkDuplicateDuplicate")) { 
         Button btnMarkDuplicateAsDuplicate = new Button(); 
         btnMarkDuplicateAsDuplicate.setTitle("" + record.getAttribute("MarkDuplicateDuplicate")); 
         btnMarkDuplicateAsDuplicate.addClickHandler(new ClickHandler() { 

          @Override 
          public void onClick(ClickEvent event) { 
          Window.alert("button in column 4 is clicked"); 

    } 
         }); 

         return btnMarkDuplicateAsDuplicate; 

        } else { 
         return null; 
        } 
       } 

    }; 
    lgDuplicateCompany.setFields(lgfprimaryCompanyName, lgfmarkPrimaryAsDuplicate, lgfduplicateCompanyName, lgfmarkDuplicateAsDuplicate); 
    lgDuplicateCompany.setWidth(780); 
    lgDuplicateCompany.setSelectionType(SelectionStyle.SINGLE); 
    lgDuplicateCompany.setSelectionAppearance(SelectionAppearance.ROW_STYLE); 
    lgDuplicateCompany.setCanResizeFields(true); 
    lgDuplicateCompany.setCanReorderFields(true); 
    lgDuplicateCompany.setShowRecordComponents(true); 
    lgDuplicateCompany.setShowRecordComponentsByCell(true); 
+1

여기에 코드를 게시 할 수 있습니까? – RAS

+0

코드를 게시했습니다. 버튼 클릭시 두 개의 비동기 호출이 있습니다 .1. 하나는 해당 회사를 복제본으로 표시하는 것입니다 .2. 업데이트 데이터를 가져오고 수정 된 데이터로 ListGrid를 다시 채 웁니다. – Twinkle

답변

0

귀하는 AutoFitData를 사용하고 있으며 특정 너비를 지정하고 있습니까? 충돌하는 설정이이 오류를 줄 것이라고 생각합니다.

+0

I listGrid 및 ListGridFields에 대한 너비를 설정하는 중입니다 ... 설정해야합니다 ... 왜 예외가 발생하는지 알지 못합니까 ??? – Twinkle