关于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.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;
    }
时间: 2024-08-03 15:59:51

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

在DataTable中更新、删除数据

/*在DataTable中选择记录*/            /* 向DataTable中插入记录如上,更新和删除如下:             * ----但是在更新和删除前,首先要找出要更新和删除的记录.             * 一种方法是遍历DataRow,搜索想要的记录,             * --〉然而更聪明的办法是使用DataTable.Select方法:table.Select();             * table.Select();//返回DataRow[],可

SSAS中CUBE行权限数据级权限控制

原文:SSAS中CUBE行权限数据级权限控制 去年做了一个数据仓库的项目,其中涉及到了CUBE数据级权限的控制.在网上找这方面的资料,找到一个[BI] 通用数据级权限控制解决方案的实现(二):Cube中的角色设置与数据级权限控制.根据这个大牛的思路,做完之后发现有几个问题: 1. 传递给CUBE的用户必须是域用户或者数据库服务器WINDOWS用户.如果BI系统不是用的AD域认证而是传统的FORM认证,那么,BI里的用户需要对应一个WINDOWS用户. 2. 另外的WEB程序里保存对cube的角色

python之从文件中按行读取数据

#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' # 从文件中按行读取数据 file = open("D:\坚果云\我的坚果云\\2019年计划.txt") while 1: lines = file.readlines(100000) if not lines: break for line in lines: print(line) 原文地址:https://www.cnblogs.c

MongoDB数据库中更新与删除数据

在MongoDB数据库中,可以使用Collection对象的update方法更新集合中的数据文档.使用方法如下所示: collection.update(selector, document, [options], [callback]); selector参数:该参数值为一个对象,用于查询需要更新的数据文档.该参数值指定的方法和我们前面使用的find方法中使用的selector参数值的指定方法完全相同. document参数:该参数值为一个对象,用于指定用来更新的数据文档. options参数

【Simple Java】往文件中按行写入数据

如下代码是一个Java小程序,用于往文件写入数据.每次运行该程序,一个新的文件被创建,之前旧的文件被删除:这与往文件追加内容是有区别的. public static void writeFile1() throws IOException { File fout = new File("out.txt"); FileOutputStream fos = new FileOutputStream(fout); BufferedWriter bw = new BufferedWriter(

循环读取文本中每行的数据

java代码: package com.zltest.bd; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; public class FileRead { public static void main(String[] args) throws Exception { File file = new Fil

SQL中删除重复的行(重复数据),只保留一行 转

方法一:使用在T-SQL的编程中 分配一个列号码,以COL1,COL2组合来分区排序,删除DATABASE重复的行(重复数据),只保留一行 // COL1,COL2是数据库DATABASE的栏位 delete a from (select COL1,COL2,row_number() over (partition by COL1,COL2 order by COL1) as rn from DATABASE) a where a.rn>1 方法二:使用在ETL中 select distant

mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)

转自:http://www.maomao365.com/?p=5323 摘要:下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除”表A”中,ID 为1.2.3.4.5的系统默认数据,通过项目组同事仔细研究,我们得到一致的答案为:在表上新增一个触发器,当删除数据ID为 1 2 3 4 5时候,直接弹出相应的错误,采用这种模式,可以限制所有端口的异常操作(程序 查询分析器),具体实现方式,如下文所示: create trigger trTriggerA on A fo

C#中删除DataTable中的行的方法

1.在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: •使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index):可以直接删除行•datatable.Rows[i].Delete().Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消