Extjs 网格不';即使在筛选时重新加载存储后也不会更改

Extjs 网格不';即使在筛选时重新加载存储后也不会更改,extjs,extjs4.1,Extjs,Extjs4.1,我想要一个网格,它将在删除任何行并检索具有相同成员id的行后更改或重新加载。为此,我添加了过滤器。在删除任何行之后,我再次使用过滤器回调存储。我的商店过滤良好,但网格无法显示它……它保留了以前的显示 Ext.define('${pkgName}.v02x001001.SV02X00100101' , { extend : 'Ext.grid.Panel', alias : 'widget.sv02x00100101', id : 'sv02x00100101', bo

我想要一个网格,它将在删除任何行并检索具有相同成员id的行后更改或重新加载。为此,我添加了过滤器。在删除任何行之后,我再次使用过滤器回调存储。我的商店过滤良好,但网格无法显示它……它保留了以前的显示

Ext.define('${pkgName}.v02x001001.SV02X00100101' , {
extend    : 'Ext.grid.Panel',
alias     : 'widget.sv02x00100101',
id        : 'sv02x00100101',
border    : true,
modal     : true,
height    : 300,
width     : 455,
viewConfig: {
    stripeRows    : true,
    forceFit      : true,
    emptyText     : 'No Records to display',
    listeners     : {
        viewready : function(v) {                    
            var store = Ext.data.StoreManager.get('S02X001001');               
            store = !store ? Ext.create("S02X001001") : store;
            var value = Ext.getCmp('member-sv02x00100104').getValue(),
            filters   = new Array();
            store.clearFilter();
            store.filter('member', value);
            filters.push({
                property : 'member', 
                value    : value
              });
            store.loadPage(1, {
                filters  : filters
             }); 
        }
    }
},
initComponent: function() {
    this.store  = 'S02X001001';     

    this.tbar= Ext.create('Ext.ux.StatusBar', {            
        topBorder       : false,
        statusAlign     : 'right',
        items    : [{
            xtype       :'button',
            text        : 'ADD',
            icon        : "${resource(dir: 'images', file: 'ADD01003.png')}",
            listeners   : {
                click   : this.onNewAddress
                }
        },'-']
    });

    this.columns = [
    {
        text            : 'Address Line 1',
        dataIndex       : 'addressline1', 
        sortable        : false,
        flex            : 1
    },{
        text            : 'Address Line 2',
        dataIndex       : 'addressline2',
        sortable        : false,
        width           : 170
    },{
        menuDisabled    : true,
        sortable        : false,
        id              : 'deletee',
        xtype           : 'actioncolumn',            
        width           : 22,            
        items           : [{
            icon        : "${resource(dir: 'images', file: 'DEL01005.png')}",
            tooltip     : 'Delete This?',
            scope       : this,
            handler     : function(grid, rowIdx, colIdx) {
                var record = grid.getStore().getAt(rowIdx);
                var conId  = record.data.id
                this.onDeleteClick(conId);
            }
        }]
    }]; 
    this.callParent(arguments);
},

onNewAddress: function(btn, e, eOpts){
    var view=Ext.widget('sv02x00100102');
    view.show();
    var a = Ext.getCmp('member-sv02x00100104').getValue();
            Ext.getCmp('member-sv02x00100102').setValue(a);
},
onDeleteClick:function(conId){
       Ext.MessageBox.show({
        title       : 'Delete',
        msg         : 'Really want to delete ?',
        icon        : Ext.Msg.WARNING,
        buttons     : Ext.MessageBox.YESNO,
        buttonText  :{ 
            yes: "Delete", 
            no : "No" 
        },
        scope         : this,
        animateTarget : 'deletee',
        fn: function(btn, dbQty){
            if(btn == 'yes'){
                var registration = Ext.create('${appName}.model.M02X001001',{
                    id : conId
                });
                var store = this.getStore();
                registration.destroy({
                    scope   : this,
                    success : function(model, operation) { 
                        if(model != null){
                        var store = Ext.data.StoreManager.get('S02X001001');               
                        store = !store ? Ext.create("S02X001001") : store;
                        var value = Ext.getCmp('member-sv02x00100104').getValue(),
                        filters   = new Array();
                        store.clearFilter();
                        store.filter('member', value);
                        filters.push({
                            property : 'member', 
                            value    : value
                          });
                        store.loadPage(1, {
                            filters  : filters
                        }); 
                       }
                    },
                    failure: function(){
                        console.log('Unable to delete');
                    }
                });           
            }                         
        }         
    });                    
 }      
}))

如何检索其余的相对行

这是我的商店

Ext.define('${pkgName}.S02X001001', {
extend    : 'Ext.data.Store',
model     : '${appName}.model.M02X001001',
idProperty: 'id',
autoLoad  : true,
autoSync  : true,
filterParam: 'query',
remoteSort: true,
proxy     : {
    type    : 'ajax',
    noCache : false,
    limitParam: 'limit',
    startParam: 'start',
    url : '${createLink(controller:'C02x001001', action: 'store')}',
    reader:{
        type            : 'json',
        root            : 'data',
        totalProperty   : 'total',
        successProperty : 'success',
        messageProperty : 'message',
        implicitIncludes: true
    },
    simpleSortMode  : true
},
sorters: [{
    property: 'id', 
    direction: 'asc'
}]

}))

应该自动刷新网格视图, 但您可以通过手动方式刷新视图:

使用方法getView().refresh(); 尝试:


谢谢你的回复。。。我试过你的答案。。。。。它保持不变。。网格保存以前的记录…………可能您想先尝试记录存储记录。用法:console.log(store_name);然后观察he记录的数据(store.data.items)。如果记录是服务器响应的真实数据,则表示错误不是来自存储区。没有功能,可能是我清除了我的需求。好。i、 表中有五个特定成员的数据,但表中有许多其他成员的数据。因此,我通过过滤检索特定成员的数据,并在“查看准备就绪的网格”面板中使用它们。所以我的网格保存特定成员的数据。现在,如果我删除该特定成员的一个数据,还有多少数据?应该是四点吧?数据库显示有四个。但网格显示为5。这意味着网格不会重新加载新记录(数据库的当前状态)。如果我刷新我的应用程序,它会显示四个。这意味着???您应该添加这个“Ext.getCmp('sv02x00100101').getView().refresh();”在onDeleteClick()上删除记录后;网格将自身绑定到一个存储区,并从此对所有事件作出反应。所以,当你说商店有所有记录,但网格没有显示它们时,这是没有意义的。。。您正在谈论的商店实例是否真的是绑定到网格的商店?你真的确定这些记录被载入了商店吗?是的,Sra,确实如此。我有一个网格面板,可以检索过滤后的数据。但当我删除任何数据时,网格无法更改,尽管我在删除函数成功后再次调用了网格的存储。我在商店里找到了经过过滤的数据(Firebug)。我的错误是什么……网格只是一种表示层,数据在存储中。如果存储更改,则由于绑定,网格将更改为。如果没有发生这种情况,您应该重新检查与您合作的门店的参考资料,以及门店是否可以显示您的回复。由于绑定,如果存储挂起他的events.Sra,网格将无法做出反应,最后我在使用Grails+ExtJS时发现了一个轻微的关联问题。因为这个网格表现出某种神秘的东西。现在一切都好了。
Ext.getCmp('sv02x00100101').getView().refresh();