关于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              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;
    }
原文地址:https://www.cnblogs.com/chfg/p/4103871.html