删除多行数据,只要在代码中加上
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 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.YES 44 }); 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.YES 54 }); 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; }