如何为列表项分配不同的ID或类?

时间:2012-04-02 08:03:54

标签: sencha-touch

首先,我为我可怜的英语道歉。

我正在尝试构建一个列表,其中每个项目具有不同的ID或类,因为我想控制显示哪些项目(隐藏或可见)。

有人可以帮忙吗?

我将不胜感激!

1 个答案:

答案 0 :(得分:0)

Ext.define('Contact', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['firstName', 'lastName']
    }
});

var store = Ext.create('Ext.data.Store', {
   model: 'Contact',
   sorters: 'lastName',
   data: [
       { firstName: 'Tommy',   lastName: 'Maintz'  },
       { firstName: 'Rob',     lastName: 'Dougan'  },
       { firstName: 'Ed',      lastName: 'Spencer' },
       { firstName: 'Jamie',   lastName: 'Avins'   },
       { firstName: 'Aaron',   lastName: 'Conran'  },
       { firstName: 'Dave',    lastName: 'Kaneda'  },
       { firstName: 'Jacky',   lastName: 'Nguyen'  },
       { firstName: 'Abraham', lastName: 'Elias'   },
       { firstName: 'Jay',     lastName: 'Robinson'},
       { firstName: 'Nigel',   lastName: 'White'   },
       { firstName: 'Don',     lastName: 'Griffin' },
       { firstName: 'Nico',    lastName: 'Ferrero' },
       { firstName: 'Nicolas', lastName: 'Belmonte'},
       { firstName: 'Jason',   lastName: 'Johnston'}
   ]
});

Ext.create('Ext.List', {
   fullscreen: true,
   itemTpl: '<div class="contact custom_class_{firstName}">{firstName} <strong>{lastName}</strong></div>',
   store: store
});

通过使用上面的代码,你可以为列表视图中的每个项添加自定义css类,只需为每个节点指定custom_class_ {modelid of model},然后你可以使用Ext.DomQuery.select('div{class=contact custom_class_{firstName}}');访问它,然后遍历DOM到获取可以使用它隐藏列表项的父元素

var div = Ext.DomQuery.select('div{class=contact custom_class_{firstName}}');
var listItem = div.up().up();