在表单面板中刷新列表

时间:2013-06-30 03:02:20

标签: list sencha-touch refresh formpanel

我有一个清单

Ext.define('EvaluateIt.view.RemoveList', {
    extend: 'Ext.dataview.List', //'Ext.tab.Panel',
    alias : 'widget.removeList',
    config: {
        width: Ext.os.deviceType == 'Phone' ? null : 300,
        height: Ext.os.deviceType == 'Phone' ? null : 500,
        xtype: 'list',
        store: 'SiteEvaluations', //getRange(0, 9),
        itemTpl: [
            '<div><strong>Address: {address}</strong></div> '
        ],
        variableHeights: false
    }

}); 

在表单面板中呈现:

Ext.define('EvaluateIt.view.Remove', {
        extend: 'Ext.Container',
        fullscreen: true,
        config: {
            layout: 'vbox',
            items: [
                {
                    xtype : 'toolbar',
                    docked: 'top'
                },
                {
                    flex: 1,
                    xtype: 'removeList' 

                }
            ]
        }
});

如果列表发生变化,如何刷新列表?例如,我有一个方法,列表中的项目的onTap,MsgBox将提供从给定索引从商店中删除该记录的选项。我在删除记录后尝试了一个load(),但这不会刷新(在浏览器中刷新它并在模拟器中,我必须退出并返回应用程序)。

这是MsgBox:

    Ext.Msg.show({
        title:'Are you sure?',
        buttons: Ext.MessageBox.YESNO,
        //animateTarget: 'mb4',
        //icon: Ext.MessageBox.WARNING,
        fn: function(buttonId) {
            //alert('You pressed the "' + buttonId + '" button.');

            if (buttonId === 'yes') {
                evaluationsStore = Ext.getStore(evaluationStore); 
                index = evaluationStore.findExact('id', id); // get index of record

                console.log('index: ' + index);
                evaluationStore.removeAt(index); // remove record by index 
                evaluationStore.sync();
                alert('It is gone!');

                Ext.getStore(evaluationStore).load();

            }
            else {
                alert('Unscathed!');
            }   
        }   
    });

古拉爵!

1 个答案:

答案 0 :(得分:1)

从数据库中删除记录后,您的列表应自动更新。商店将生成“更新”事件,并且具有商店的列表将刷新其内容。你是说它对你不起作用吗?