代码之家  ›  专栏  ›  技术社区  ›  Cuga

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

  •  1
  • Cuga  · 技术社区  · 14 年前

    我有一个 ListView 在ext-gwt中,我添加了一些自定义数据。如何在 列表视图 ?从现在开始,每当添加一个项目时,视图中的每个条目都只有一条小行。

    这是我的基本代码:

    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);
        }
    
    }
    

    谢谢大家的帮助!

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gerhard Davids    14 年前

    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(""); 
    }-*/;