1

我正在尝试在 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
4

3 回答 3

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

于 2012-09-01T09:42:12.907 回答
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>
于 2012-12-07T16:19:32.283 回答
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>
于 2013-05-22T09:07:27.837 回答