首页 > 代码库 > 关于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中多行删除数据的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。