2012-09-01 52 views
1

我正在嘗試在GWT Sencha中創建一個基本網格。 它工作正常,但我不知道如何把電網UiBinder的, 不知道什麼是父窗口部件,gwt基本網格sencha uibinder不工作

這就是我在做什麼

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 

<c:FramedPanel> 
    <grid:GridView ui:field="gridMain"> 
    </grid:GridView> 
    </c:FramedPanel> 


錯誤:

Expected a widget or <g:cell>, found <grid:GridView ui:field='gridMain'> Element <g:VerticalPanel> (:4 

回答

2

添加以下行ui.xml

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 

xmlns:grid="urn:import:Package-of-GridView"> 

如果您已經將這兩行則以其優良的

這裏是我的問題和答案。

我猜GridView是你的視圖類。 是否擴展了任何小部件

如果它擴展了任何小部件,那麼它將工作。如果不是,那只是一堂課。

我們可以在小部件中添加小部件,但不能在小部件中添加類。因此,如果需要

合適的部件延伸到GridView控件

對於如。 public class Gridview extends VerticalPanel

+0

感謝烏拉圭回合的答覆,其實這是我想要http://www.sencha.com/examples/#ExamplePlace :basicuibindergrid。但他們只是給了java類的代碼,而不是uibinder的代碼,你有什麼想法,我的uibinder類將在這種情況下看起來像。 – junaidp

+0

我認爲這幫助我解決了一個類似的問題:我忘了'urn:import:'部分。 – cellepo

0

的GXT的UiBinder的例子可以在這裏找到:

http://gxt-uibinder.appspot.com/

這是專門你要找的例子:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui' 
    xmlns:gxt="urn:import:com.extjs.gxt.ui.client.widget" xmlns:toolbar="urn:import:com.extjs.gxt.ui.client.widget.toolbar" xmlns:form="urn:import:com.extjs.gxt.ui.client.widget.form" xmlns:grid="urn:import:com.extjs.gxt.ui.client.widget.grid">  
    <ui:with type="com.jhickman.web.gwt.gxtuibindertest.client.resources.icons.ExampleIcons" field="icons" /> 
    <ui:with type="com.extjs.gxt.ui.client.store.ListStore" field="store" /> 
    <ui:with type="com.google.gwt.i18n.client.DateTimeFormat" field="dateformat" /> 
    <ui:with type="com.jhickman.web.gwt.gxtuibindertest.client.view.grids.BasicGridView.ChangeCellRenderer" field="change" /> 
    <ui:with type="com.jhickman.web.gwt.gxtuibindertest.client.view.grids.BasicGridView.GridNumberRenderer" field="gridNumber" /> 

    <gxt:LayoutContainer layout="FlowLayout"> 
    <gxt:layoutdata type="FlowData" margins="10"> 
     <gxt:ContentPanel bodyBorder="true" icon="{icons.table}" heading="Basic Grid" buttonAlign="CENTER" layout="FitLayout" width="600" height="300"> 
     <gxt:topcomponent> 
      <toolbar:ToolBar> 
      <toolbar:LabelToolItem label="Selection Mode:" /> 
      <form:SimpleComboBox triggerAction="ALL" editable="false" fireChangeEventOnSetValue="true" width="100" ui:field="selectionModeComboBox" /> 
      </toolbar:ToolBar> 
     </gxt:topcomponent> 


     <grid:Grid store="{store}" 
      ui:field="grid" 
      styleAttribute="borderTop:none" 
      autoExpandColumn="name" 
      borders="false" 
      stripeRows="true" 
      columnLines="true" 
      columnReordering="true"> 
      <grid:column id="name" 
         header="Company" 
         width="200" 
         rowHeader="true" /> 
       <grid:column id="symbol" 
         header="Symbol" 
         width="100" /> 
      <grid:column id="last" 
      header="Last" 
      alignment="RIGHT" 
      width="75" 
      renderer="{gridNumber}"/> 
      <grid:column id="change" 
      header="Change" 
      width="100" 
      alignment="RIGHT" 
      renderer="{change}" /> 
      <grid:column id="date" 
      header="Last Updated" 
      width="100" 
      alignment="RIGHT" 
      dateTimeFormat="{dateformat}" /> 
     </grid:Grid> 
     </gxt:ContentPanel> 
    </gxt:layoutdata> 
    </gxt:LayoutContainer> 

</ui:UiBinder> 
0

你不能直接添加在網格FramedPanel 嘗試在添加網格之前添加容器,例如VerticalLayoutContainer作爲您的FramedPanel的子節點。

在UiBinder的

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:gxt="urn:import:com.sencha.gxt.widget.core.client" 
xmlns:row="urn:import:com.sencha.gxt.widget.core.client.container"> 

在您FramedPanel

<gxt:FramedPanel ui:field="panel" headingText="VerticalLayout Example" 
     collapsible="false"> 
     <row:VerticalLayoutContainer> 
      <row:child><grid:GridView ui:field="view"></grid:GridView> 
      </row:child> 
<row:VerticalLayoutContainer>