如何在ext gwt中为ListView设置项目呈现器?

如何在ext gwt中为ListView设置项目呈现器?,gwt,listview,itemrenderer,gxt,Gwt,Listview,Itemrenderer,Gxt,我在extgwt中有一个列表视图,我正在向其中添加一些自定义数据。如何在列表视图上设置项目呈现器?现在,每当添加一个项时,视图中只有一小行表示每个条目 这是我的基本代码: import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.widget.ListView; import com.foo.bar.FooModelData; private final ListStore<FooMod

我在extgwt中有一个
列表视图
,我正在向其中添加一些自定义数据。如何在
列表视图
上设置项目呈现器?现在,每当添加一个项时,视图中只有一小行表示每个条目

这是我的基本代码:

import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ListView;
import com.foo.bar.FooModelData;


private final ListStore<FooModelData> listStore = 
    new ListStore<FooModelData>();
private final ListView<FooModelData> listView = 
    new ListView<FooModelData>();

public initializeView()
{
    listView.setStore(listStore);
    listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}

public void addItem(FooModelData data) {
    listStore.add(data);
}


public class FooModelData extends BaseModel
{
    public ModelDataInstance(Foo foo, String style)
    {
        setFoo(foo);
        setStyle(style);
    }

    public String getStyle()
    {
        return get("style");
    }

    public Foo getFoo()
    {
        return (Foo) get("foo");
    }

    public void setStyle(String style)
    {
        set("style", style);
    }

    public void setFoo(Foo foo)
    {
        set("foo", foo);
    }

}
import com.extjs.gxt.ui.client.store.ListStore;
导入com.extjs.gxt.ui.client.widget.ListView;
导入com.foo.bar.FooModelData;
私有最终ListStore ListStore=
新建ListStore();
私有最终ListView ListView=
新建ListView();
公共初始化视图()
{
设置存储(listStore);
listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}
公共void附加项(foododeldata数据){
添加(数据);
}
公共类FoodModelData扩展了BaseModel
{
公共ModelDataInstance(Foo-Foo,字符串样式)
{
setFoo(foo);
设置样式(样式);
}
公共字符串getStyle()
{
返回获取(“样式”);
}
公共Foo getFoo()
{
返回(Foo)获取(“Foo”);
}
公共void集合样式(字符串样式)
{
设置(“样式”,样式);
}
公共无效设置Foo(Foo-Foo)
{
集合(“foo”,foo);
}
}

谢谢你的帮助

GXT使用模板化实现。 使用Sencha explorer示例的简化版本,您可以按如下方式使用数据(foo.name假定foo也是一个模型:

public initializeView()
{
listView.setStore(listStore);
listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
listView.setTemplate(getTemplate());
}

private native String getTemplate() /*-{ 
 return ['<tpl for=".">',
 '<div class="{style}">{foo.name}</div>', 
 '</tpl>', 
 '<div class="x-clear"></div>'].join(""); 
}-*/;
public initializeView()
{
设置存储(listStore);
listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
setTemplate(getTemplate());
}
私有本机字符串getTemplate()/*-{
返回[“”,
“{foo.name}”,
'', 
'')。加入(“”);
}-*/;