Gwt 如何电动使用UIBinder?

Gwt 如何电动使用UIBinder?,gwt,uibinder,Gwt,Uibinder,我使用的是GWT2.3。我在这里使用的是UI活页夹。我想用UIBinder在这里创建网格。为此,我编写了这段代码 <g:Grid ui:field='mygrid' addStyleNames='{style.panel}' cellSpacing='10'> <g:row> <g:customCell> <g:Label text="

我使用的是GWT2.3。我在这里使用的是UI活页夹。我想用UIBinder在这里创建网格。为此,我编写了这段代码

<g:Grid ui:field='mygrid' addStyleNames='{style.panel}'
            cellSpacing='10'>
            <g:row>
                <g:customCell>
                    <g:Label text="11" styleName="{style.label}" /> 
                </g:customCell>
                <g:customCell>
                    <g:Label text="22" styleName="{style.label}" /> 
                </g:customCell>
            </g:row>
            <g:row>
                <g:customCell>
                    <g:Label text="33" styleName="{style.label}" /> 
                </g:customCell>
                <g:customCell>
                    <g:Label text="44" styleName="{style.label}" /> 
                </g:customCell>
            </g:row>
        </g:Grid>

现在,我的网格数据是静态的。现在,如果我的数据来自服务器端&根据这些数据,我想使用UIbinder创建一个网格。这怎么可能

另一种情况是。有一种形式。在这种形式中,控件的数量来自数据库。 那么UIBider如何支持创建这个表单呢

所以我想知道是否可以使用UIBinder来根据运行时数据创建用户界面

欢迎提供任何建议或示例。

UiBinder是“交叉编译”到JavaScript和HTML代码的。一旦完成,您就不能修改它。现在有一种方法可以做一些事情,比如将XML语法发送到客户端,然后创建一个网格


但是,您可以在“代码隐藏”中添加新行


关于你的第二个问题:我不知道你的意思:是的,你可以从Java向UIBinder添加数据。当您在Eclipse中创建UIBinder时,它也为这个XML创建了.java文件。编辑此对应的java文件并添加如下内容:

公共类MyGridSample扩展复合{
//uiBinder接口声明。。。
私有静态MyGridSampleUiBinderUiBinder=GWT.create(MyGridSampleUiBinder.class);
接口MyGridSampleUiBinder扩展了UiBinder{
}
//注释以将ui字段转换为代码
@尤菲尔德
网格mygrid;
公共MyGridSample(){
setWidget(uiBinder.createAndBindUi(this));
//使用标签设置单元格0,0
setWidget(0,0,新标签(“单元格0”);
}
}

GWT是客户端框架,UIBinder被预编译为javascript文件——它们作为静态文件使用。您应该进行Webservice调用以将数据获取到此模板。

“但是,您可能会在“代码隐藏”中添加新行。”这意味着首先要在ui.xml中定义网格,并根据数据定义gwt(.java)类中的行数?是的。我知道这不是最好的解决方案,但我仍然会使用UiBinder。在“表格设计”中添加样式和新的小部件(如“标题标签”)更容易。