2016-11-03 49 views
1

你看,提高列表项,其实我有一个虚拟列表控件:如何从VirtualList

var list = new qx.ui.list.List().set({labelPath: "label"}); 

所以我使用的JSON商店从服务器retrive数据:

var store = new qx.data.store.Json('my/resource/data.json'); 
store.bind("model", list, "model"); 

而且这样可行。但是我需要更丰富的列表元素,更多的是图标,还有一些描述和状态。该数据位于服务器返回的json中,但是现在可以自定义项目元素以显示它吗?

回答

2

列表,因为它们在qooxdoo默认使用qx.ui.form.ListItem。您可以在列表delegate中覆盖createItem

This example来自demobrowser显示如何使用代表createItembindItem

你需要的,如果你已经真正定制在列表项应该是什么样子的想法做的,就是:

  • 创建自定义列表项类实现qx.ui.form.IModel(可能包括qx.ui.form.MModelProperty) 。利用属性和子控件。也许这是一个良好的开端,从qx.ui.form.ListItem继承和覆盖布局/子控件,但你也可以从qx.ui.core.Widget继承 - 与需要照顾约状态
  • 风格像你希望使用主题化机制。
  • 使用setDelegate()覆盖createItembindItem将所需的模型属性连接到自定义列表项。

由于这个问题没有进一步细化,这可能会给你一个出发点。