首页 > 代码库 > 关于Ext中多行删除数据的问题

关于Ext中多行删除数据的问题

删除多行数据,只要在代码中加上

selModel:Ext.create(‘Ext.selection.CheckboxModel‘,{mode:"SIMPLE"}),  

 1  Ext.apply(this, { 2             title: ‘商品单位‘, 3             id:‘tMeUnitInfoid‘, 4             store: mystore, 5             selModel:Ext.create(‘Ext.selection.CheckboxModel‘,{mode:"SIMPLE"}),     //多选框checkbox 6             closable:true, 7             sortableColumns:false, 8             columns: [ 9                 {text:‘单位编码‘,dataIndex:‘unitId‘,xtype:‘hidden‘},10                 {text:‘名称‘,dataIndex:‘name‘},11                 {text: ‘状态‘, dataIndex: ‘status‘},12                 {text: ‘备注‘, dataIndex: ‘remark‘}13             ],14             width: 400,

 

解决方法:

我用删除多行数据传到后台的方法是在url上加上一个字符串(字符串中写的是每个我需要删除的值得主键id值,并且用","分割),然后在后台通过定义一个字符串接受,并且用split方法分割数据传到一个数组里,遍历数组,删除每条数据。

extjs代码如下:

 1  xtype:‘button‘,text:‘删除‘, 2                     handler:function(){ 3                         var tagMsg=Ext.getCmp(‘tMeUnitInfoid‘).getSelectionModel().getSelection(); 4                         var length1=tagMsg.length; 5                         if(tagMsg.length>1){ 6                             var list=‘‘; 7                             for(var i= 0 , length= Ext.getCmp(‘tMeUnitInfoid‘).getSelectionModel().getSelection().length;i<length;i++){ 8                                 list+=tagMsg[i].get(‘unitId‘); 9                                 if (i != length - 1) {10                                     list += ‘,‘;11                                 }12                             };13                             Ext.Msg.show({14                                 title:‘删除‘,15                                 msg:‘确定要删除‘+length1+‘条数据吗?‘,16                                 icon: Ext.MessageBox.WARNING,17                                 buttons: Ext.MessageBox.YESNO,18                                 fn:function(btn){19                                     if(btn==‘yes‘){20                                         Ext.Ajax.request({21                                             url: ‘/tMeUnitInfoCheck?deleteMany=‘ + list,22                                             success: function (response) {23                                                 var msg = Ext.JSON.decode(response.responseText);24                                                 Ext.getCmp(‘tMeUnitInfoid‘).store.reload();25                                                 var totalCount = mystore.getTotalCount(); // 所有的记录数,不单单是当前页展示的数据26                                                 var pageSize = mystore.pageSize; // 一页上面展示的记录条数27                                                 var curPage = mystore.currentPage; // 当前页码28                                                 var fromRecord = ((curPage - 1) * pageSize) + 1; // 当前页展示的起始记录号29                                                 var toRecord = Math.min(curPage * pageSize, totalCount); // 当前页展示的结尾记录号30                                                 var totalOnCurPage = toRecord - fromRecord + 1; // 当前页展示的记录条数31                                                 var totalPageCount = Math.ceil(totalCount / pageSize); // 总的页数32                                                 var delCount = length1;// 删除的记录条数33                                                 //若当前页是最后一页,且不是仅有的一页,且删除的记录数是当前页上的所有记录数34                                                 if (curPage === totalPageCount && totalPageCount != 1 && delCount == totalOnCurPage)35                                                 {36                                                     mystore.currentPage-1;37                                                     Ext.getCmp(‘tMeUnitInfoid‘).store.loadPage(mystore.currentPage-1);38                                                 }39                                                 Ext.MessageBox.show({40                                                     title: ‘成功‘,41                                                     msg: msg.msg,42                                                     icon: Ext.MessageBox.WARNING,43                                                     buttons: Ext.MessageBox.YES44                                                 });45                                             },46                                             failure: function (response) {47                                                 var msg = Ext.JSON.decode(response.responseText);48                                                 Ext.getCmp(‘tMeUnitInfoid‘).store.reload();49                                                 Ext.MessageBox.show({50                                                     title: ‘失败‘,51                                                     msg: msg.msg,52                                                     icon: Ext.MessageBox.QUESTION,53                                                     buttons: Ext.MessageBox.YES54                                                 });55                                             }56                                         });57                                     }58                                 }59                             })60                             return;61                         }

后台Java代码:

 public String deleteCheck(){        String arr[]=deleteMany.split(",");        for(int i =0;i<arr.length;i++){                int a =dao.extcuteHQL("delete from TMeUnitInfo WHERE unitID=?",arr[i]);                if(a>0){                    setMsg("删除商品信息成功!");                }else if(a<0){                    setMsg("删除商品信息失败!");            }        }        return SUCCESS;    }

 

关于Ext中多行删除数据的问题