1

カルーセル形式でデータビューを追加すると、リストとして表示されます。次に、データビューのいくつかのアイテムを削除しますが、カルーセル ビューのリストは変更されません。ビューを更新するにはどうすればよいですか?

「remove()」、「removeAll()」、「destroy()」、「refresh()」などのいくつかの方法を試しましたが、効果がありません。

モデル:

Ext.define('Chihiro.model.User', {
extend: 'Ext.data.Model',
config: {
    fields: [ 'id', 'name', 'nickname', 'signiture', 'gender', 'birthday', 'school', 'job', 'portrait', 'interests', 'dis'],
    proxy: {
        type: 'localstorage',
        id: 'friends'
    },
    autoLoad: true
}
});

データビュー:

Ext.define('Chihiro.view.userlist.List', {
extend: 'Ext.DataView',
xtype: 'userlist',

store: {
    model: 'Chihiro.model.User'
},
config: {
    ui:'loans',
    useComponents: true,
    defaultType: 'listitem',
    emptyText: '<div style="margin-top: 20px; text-align: center">没有找到任何人哦</div>',
    deselectOnContainerClick: false
}
});

パネル:

Ext.define('Chihiro.view.contact.List', {
extend: 'Ext.Carousel',

xtype: 'contactpanel',
id: 'contactnavigationview',

layout: 'vbox',
config: {
    fullscreen: true,
    //autoDestroy: false,
    scrollable: true,
    //defaultBackButtonText: '返回',
    items: [
        {
            xtype: 'titlebar',
            docked: 'top',
            title: '好友'
        }
    ]
}
});
4

1 に答える 1

3

データビューを更新するには、ストアを再ロードする必要があります。

remove()removeAll()destroy()およびのようなメソッドは、refresh()まったく効果がありません。

ストア内のアイテムを変更するときはload()、データストアでメソッドを呼び出す必要があります。これにより、基本的にデータビューが更新されます。

yourStoreForDataView.load();

お役立ち投稿 : Sencha-touch : refresh list : store

于 2012-04-25T11:54:35.593 に答える