Ext.define('erp.view.common.multiDbfind.ResultGridPanel',{ extend: 'Ext.grid.Panel', alias: 'widget.erpResultDbfindGridPanel', layout : 'fit', hidden:true, id: 'dbfindresultgrid', emptyText : $I18N.common.grid.emptyText, columnLines : true, autoScroll : true, store: [], columns: [], selectAll:true, selectObject:new Object(), bbar:['->',{id:'count',xtype: 'tbtext',text: '共: 0 条, 已选: 0 条'}], selModel: Ext.create('Ext.selection.CheckboxModel',{ ignoreRightMouseSelection : false, checkOnly: true, listeners:{ selectionchange:function(selModel, selected, options){//表头全选、取消全选 var grid=selModel.view.ownerCt; if(grid.selectAll){ if(selected.length>0){//全选 Ext.each(selected,function(select){ grid.selectObject[Ext.JSON.encode(select.data)]=select.data; }); }else{//取消全选 var grid=selModel.view.ownerCt; Ext.each(grid.store.data.items,function(deselect){ var key=Ext.JSON.encode(deselect.data); delete grid.selectObject[key]; }); } grid.updateInfo(); }else{ grid.selectAll=true; } }, select:function(selModel, record, index, opts){//选中 var grid=selModel.view.ownerCt; if(grid.selectAll){ grid.selectObject[Ext.JSON.encode(record.data)]=record.data; grid.selectAll=false; } grid.updateInfo(); }, deselect:function(selModel, record, index, opts){//取消选中 var grid=selModel.view.ownerCt; if(grid.selectAll){ var key=Ext.JSON.encode(record.data); delete grid.selectObject[key]; grid.selectAll=false; } grid.updateInfo(); } } }), headerCt: Ext.create("Ext.grid.header.Container",{ forceFit: false, sortable: true, enableColumnMove:true, enableColumnResize:true, enableColumnHide: true }), plugins: [Ext.create('Ext.ux.grid.GridHeaderFilters')], initComponent : function(){ this.callParent(arguments); }, updateInfo:function(){ var grid=this; var count_all=grid.store.data.items.length; var count_select=grid.selModel.getSelection().length; var count = Ext.getCmp('count'); if (count) count.setText('共: ' + count_all + ' 条, 已选: ' + count_select+ ' 条'); }, RenderUtil: Ext.create('erp.util.RenderUtil'), selectDefault:function(){ var grid=this; var datachecked=new Array(); Ext.each(Ext.Object.getKeys(grid.selectObject),function(k){ datachecked.push(grid.selectObject[k]); }); if(datachecked.length>0){ var selectArr=new Array(); Ext.each(grid.store.data.items, function(item){ delete item.data.RN; Ext.each(datachecked,function(checked){ var checkflag=true; var keys=Ext.Object.getKeys(item.data); for(var i=0;i