从存储分页内存中删除记录后刷新Extjs网格

从存储分页内存中删除记录后刷新Extjs网格,extjs,grid,refresh,Extjs,Grid,Refresh,我有ExtJS网格。当我从网格中删除记录时,它将从页面中删除。但是,当我执行next/prev时,数据会再次显示。 删除记录后,工具栏也不会显示正确的统计信息 你能帮忙吗 <script type="text/javascript" src="/extjs-4.0.7/ext-all.js"></script> <script type="text/javascript" src="/extjs-4.0.7/examples/ux/data/PagingMemory

我有ExtJS网格。当我从网格中删除记录时,它将从页面中删除。但是,当我执行next/prev时,数据会再次显示。 删除记录后,工具栏也不会显示正确的统计信息

你能帮忙吗

<script type="text/javascript" src="/extjs-4.0.7/ext-all.js"></script>
<script type="text/javascript" src="/extjs-4.0.7/examples/ux/data/PagingMemoryProxy.js"></script>

<link rel="stylesh`enter code here`eet" type="text/css" href="/extjs-4.0.7/resources/css/ext-all.css" />

<script>
    var selectedRecord = null;

    function getRecord() {
        return selectedRecord;
    }

    var data = '{"user":[sample date for the grid]}';
    var workitemList = "";
    var selectedItems = new Array();

    Ext.onReady(function() {
        Ext.QuickTips.init();
        Ext.tip.QuickTipManager.init();

        Ext.define('Model', {
            extend: 'Ext.data.Model',
            fields: [{
                    name: 'WORKITEMID',
                    mapping: 'WORKITEMID'
                },
                {
                    name: 'ALERTID',
                    mapping: 'ALERTID'
                },    
            ]
        });

        var storeMain = Ext.create('Ext.data.Store', {
            model: 'Model',
            autoLoad: false,
            buffered: false,
            pageSize: 5,
            data: [],
            proxy: {
                type: 'pagingmemory',
                reader: {
                    type: 'json',
                    root: 'user'
                }
            },
            remoteSort: true,
            remoteFilter: true,
            remoteGroup: true
        });

        var sm = Ext.create('Ext.selection.CheckboxModel', {
                listeners: {
                selectionchange: function(sm, selections) {    
                    selectedItems = selections;
                }
            }
        });

        var myGrid = new Ext.grid.Panel({
            title: 'Unassign Alerts',
            collapsible: false,
            border: true,
            loadMask: true,
            frame: false,
            id: 'myGridId',
            columnLines: true,
            animCollapse: false,
            loadMask: true,
            stripeRows: true,
            renderTo: Ext.getBody(),
            store: storeMain,
            selModel: sm,
            columns: [    
                {
                    text: 'Alert ID',
                    dataIndex: 'WORKITEMID',
                    flex: 8 / 100
                }    
            ],

            listeners: {
                'afterrender': function(e) {
                    var gridthWidth = this.getWidth();
                    this.setWidth(gridthWidth);
                    this.setAutoScroll(true);
                },
                'columnresize': function(e) {
                    var gridthWidth = this.getWidth();
                    this.setWidth(gridthWidth);
                    this.setAutoScroll(true);
                },
                cellclick: function(iView, iCellEl, iColIdx, iRecord, iRowEl, iRowIdx, iEvent) {    
                    if (iColIdx == 1) {
                        selectedRecord = iRecord;    
                    }    
                },
                render: function(e) {        
                    this.store.getProxy().data = Ext.decode(data);

                    //this.store.pageSize =25;
                    this.store.load();

                    this.store.on('load', function() {
                        //myMask.hide();    
                    });
                    e.style = " background-color: #003464;";
                }
            },
            bbar: new Ext.PagingToolbar({
                store: storeMain,
                id: 'Ptoolbar',
                pageSize: 5,
                displayInfo: true,
                height: 25,
                //plugins: Ext.create('Ext.ux.ProgressBarPager', {}),
                displayMsg: 'Displaying Records {0} - {1} of {2}',
                emptyMsg: "No records to display",
                listeners: {
                    afterrender: function() {
                        this.child('#refresh').hide();
                    }
                },
                buttons: [{
                    id: 'btnID',
                    itemId: 'saveBtn',
                    pressed: true,
                    frame: true,
                    text: 'Remove',
                    handler: function(store) {
                        if (selectedItems.length > 0) {    
                            store.remove(selectedItems);
                            Ext.getCmp('clientSummaryGridId').getView().refresh();    
                        } else {
                            Ext.Msg.alert("Result", "No selection");
                        }    
                    }
                }]        
            })        
        });    
    });
</script>

var selectedRecord=null;
函数getRecord(){
返回selectedRecord;
}
变量数据=“{”用户“:[网格的样本日期]}”;
var workitemList=“”;
var selectedItems=新数组();
Ext.onReady(函数(){
Ext.QuickTips.init();
Ext.tip.QuickTipManager.init();
Ext.define('模型'{
扩展:“Ext.data.Model”,
字段:[{
名称:“工作项ID”,
映射:“WORKITEMID”
},
{
名称:“ALERTID”,
映射:“ALERTID”
},    
]
});
var storeMain=Ext.create('Ext.data.Store'{
模型:“模型”,
自动加载:false,
缓冲区:false,
页面大小:5,
数据:[],
代理:{
键入:“分页内存”,
读者:{
键入:“json”,
root:'用户'
}
},
remoteSort:是的,
remoteFilter:true,
远程组:true
});
var sm=Ext.create('Ext.selection.CheckboxModel'{
听众:{
选择更改:功能(sm,选择){
selectedItems=选择;
}
}
});
var myGrid=new Ext.grid.Panel({
标题:“取消分配警报”,
可折叠:错误,
边界:是的,
loadMask:是的,
帧:假,
id:'myGridId',
专栏:没错,
答案:错,
loadMask:是的,
是的,
renderTo:Ext.getBody(),
商店:店主,
型号:sm,
列:[
{
文本:“警报ID”,
dataIndex:'WORKITEMID',
弹性:8/100
}    
],
听众:{
“afterrender”:函数(e){
var gridthWidth=this.getWidth();
这个.setWidth(gridthWidth);
此参数为.setAutoScroll(true);
},
“columnresize”:函数(e){
var gridthWidth=this.getWidth();
这个.setWidth(gridthWidth);
此参数为.setAutoScroll(true);
},
cellclick:函数(iView、iCellEl、iClidX、iRecord、iRowEl、iRowIdx、iEvent){
如果(IclidX==1){
selectedRecord=i记录;
}    
},
呈现:函数(e){
this.store.getProxy().data=Ext.decode(数据);
//this.store.pageSize=25;
this.store.load();
this.store.on('load',function()){
//myMask.hide();
});
e、 style=“背景色:#003464;”;
}
},
bbar:新的Ext.PagingToolbar({
商店:店主,
id:'Ptoolbar',
页面大小:5,
displayInfo:true,
身高:25,
//插件:Ext.create('Ext.ux.ProgressBarPager',{}),
displayMsg:'显示{2}的记录{0}-{1},',
emptyMsg:“没有要显示的记录”,
听众:{
afterrender:function(){
this.child(“#refresh”).hide();
}
},
按钮:[{
id:'btnID',
itemId:'saveBtn',
答:对,,
框架:对,
文本:“删除”,
处理程序:函数(存储){
如果(selectedItems.length>0){
存储。删除(选择编辑项);
Ext.getCmp('clientSummaryGridId').getView().refresh();
}否则{
Ext.Msg.alert(“结果”,“无选择”);
}    
}
}]        
})        
});    
});
如果

不工作你也可以试试

Ext.getCmp('myGrid').reconfigure(gridstore);

因此,无论何时从网格中删除记录,您都可以使用此语句。

Ext.getCmp('myGrid').getView().refresh()在实际代码中,您使用的是带有远程api的存储,或者是从静态文件加载数据?IMO相关:,请尝试我们的PagingToolbar.onLoad();
Ext.getCmp('myGrid').reconfigure(gridstore);