如何仅向某些集团申请披露?

时间:2011-11-18 10:28:31

标签: list extjs sencha-touch disclosure

我目前有这样的分组:

enter image description here

代码:

Ext.regModel('Contact', {
    fields: ['firstName', 'lastName']
});

var store = new Ext.data.JsonStore({
    model  : 'Contact',
    getGroupString : function(record) {
        //return record.get('lastName')[0];
        return record.get('group');
    },
    data: [
        {firstName: 'Tung', lastName: 'Hauw', group: 'Parents'},
        {firstName: 'Regina', lastName: 'Clarissa', group: 'Parents'},
        {firstName: 'Melvin', lastName: 'Gilbert', group: 'Children'},
        {firstName: 'Jeaffrey', lastName: 'Gilbert', group: 'Children'},
        {firstName: 'Melissa', lastName: 'Merryl Gilbert', group: 'Children'},
        {firstName: 'Jesica', lastName: 'Merryl Gilbert', group: 'Children'}
    ]
});

var list1 = new Ext.List({
    flex: 1,
    cls: 'list_simple',
    sorters: ['firstName', 'group'],
    itemTpl: '{firstName} {lastName}',
    grouped: true,
    groupTpl : [
        '<tpl for=".">',
            '<div class="x-list-group x-group-{id}">',
                '<h3 class="x-list-header"><div class="header">{group}</div></h3>',
                '<div class="x-list-group-items">',
                    '{items}',
                '</div>',
            '</div>',
        '</tpl>'
    ],
    onItemDisclosure: function(record, btn, index) {
        Ext.Msg.alert('Tap', 'Disclose more info for ' + record.get('firstName') + ' ' + record.get('lastName'), Ext.emptyFn);
    },
    store: store
});

我需要针对特定​​群体进行具体披露。使用上面的代码,我得到所有组都有相同的披露。我正在努力实现这个设计:

enter image description here

不披露家长的物品。如果我们在Parent的行上滑动,我们将看到Remove按钮。此外,它还有点击事件。

我不知道应该在哪里移动/更改披露事件。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

更改公开外观的最佳方法是使用组的CSS类。如果您添加规则以定位披露。我不是100%肯定你使用的样式规则(我认为是webkit-mask-box-image),但是如果你在CSS中添加这样的规则它应该可以工作......

x-list-group x-group-{id} .x-list-disclosure {
   -webkit-mask: none;
   -webkit-mask-box-image: none;
}

显然,更改{id}部分以反映您的父组的ID,这样您的所有父项都不会有披露图标。

Reference