Ext.data.Store不会立即重新加载

时间:2010-07-22 14:59:58

标签: extjs

当我尝试调用或重新加载数据存储区时,尝试使用选择侦听器中的组合框中的ajax填充整个网格时,我仍然会获得旧值,而不是新值。我必须得到新值,因为根据组合框中选择的参数,textfields和其他编辑器将填充使用ajax从服务器读取的json数据,并使用另一个获取远程数据的组合框进行编码

var cm = new Ext.grid.ColumnModel({
        defaults: {
            sortable: true
        },
        columns: [{
            id: 'ci',
            header: 'Periodo Declarado',
            dataIndex: 'ci',
            width: 150, 
            editor: new fm.ComboBox({
                typeAhead: true,
                triggerAction: 'all',
                transform: 'PerDecl',
                lazyRender: true,
                listClass: 'x-combo-list-small',
                mode:'local',
                listeners:{
                expand: function (combo){
                //alert("asd");
            },
            collapse: function(combo,record,number){
            },
                select:function(v, params, record){
                ds_random_employee_data_active.remove();
                var varAnio2=v.getValue();
                var ds_random_employee_data_active2=ds_random_employee_data_active;
                ds_random_employee_data_active2.load({ params: { anio: varAnio2 } });
                Ext.each(ds_random_employee_data_active2.data.items, function(record){
                    alert(record.data.ut);
                });
                //setTimeout("tres("+ v +"[]);",1000);

            }}  



            })
        }

***********其他专栏************************

3 个答案:

答案 0 :(得分:1)

[已解决]感谢大家说我在四个小时或更长时间后想出来的方式我的方式似乎是bmoeskau但我确实在阅读了解决方案之后阅读了bmoeskau的帖子 谢谢你们所有人

store.load({params:{anio:varanio},callback:function(){//这里是循环或其他指令 }}) 这是一个很好的论坛聊天

答案 1 :(得分:0)

那是因为它异步加载。

答案 2 :(得分:0)

如果您(重新)加载数据存储,则该调用是异步的,因此任何依赖于更新数据的操作都必须在回调中完成。您可以处理商店的load事件来执行此操作。请参阅我的回答here以获取示例。