var BankOrderstore = new Ext.data.JsonStore                        //数据源({url: "../Handler/TxnRefund.ashx",totalProperty: 'ToTalRecord',root: "ResultData",listeners:{beforeload: function () {this.baseParams ={"method": "QUERYCMBCREFUND","BGWTXNID": Ext.getCmp("txtBgwTxnID").getValue(),"STATUS": Ext.getCmp("Refundstatus").getValue(),"STDATE": Ext.getCmp("txtSTDate").getValue("Y-m-d").format("Y-m-d"),"EDDATE": Ext.getCmp("txtEDDate").getValue("Y-m-d").format("Y-m-d"),start: 0,limit: m_pageSize};}},fields: ["BGWTXNID", "APPCODE", "BANKREFNUM", "REFUNDAMOUNT", "NAME", "STATUS", "NOTIFYRESULT", "APPLYDATE", "PROCESSDATE", "RECEIPTDATE", "BANKTXNAMOUNT","REFUNDTXNID"]});var check = new Ext.grid.CheckboxSelectionModel({                  //checkboxsingleSelect:false,         //false为可以多选sortable:true
});var gvResult = new Ext.grid.GridPanel({id: "gvResult",renderTo: "dvBankRefund",title: '<% = GetLocalResourceObject("ResultsText") %>',height: 380,store: BankOrderstore,width: m_pageWidth,stripeRows: true, //斑马线trackMouseOver: true,loadMask: { msg: '<% = GetLocalResourceObject("LoadingText") %>' },frame: true,columns:[new Ext.grid.RowNumberer(), //行号
            check,{ header: '<% = GetLocalResourceObject("BgwTxnIDText") %>', dataIndex: "BGWTXNID", width: 150, sortable: true },{ header: '<% = GetLocalResourceObject("AppCodeText") %>', dataIndex: "APPCODE", width: 100, sortable: true, renderer: ConvertAppCode },{ header: '<% = GetLocalResourceObject("BankRefundText") %>', dataIndex: "BANKREFNUM", width: 180, sortable: true },{ header: '<% = GetLocalResourceObject("RefundAmountText") %>', dataIndex: "REFUNDAMOUNT", width: 80, sortable: true, renderer: function (v) { return v.toFixed(2); } },{ header: '<% = GetLocalResourceObject("RefundStatusText") %>', dataIndex: "STATUS", width: 80, sortable: true, renderer: ConvertStatus },{ header: '<% = GetLocalResourceObject("ApplyDateText") %>', dataIndex: "APPLYDATE", width: 150, sortable: true, renderer: function (v) { return getFormatDate(v, "yyyy-MM-dd HH:mm:ss"); } },{ header: '<% = GetLocalResourceObject("ProcessDateText") %>', dataIndex: "PROCESSDATE", width: 150, sortable: true, renderer: function (v) { return getFormatDate(v, "yyyy-MM-dd HH:mm:ss"); } },{ header: '<% = GetLocalResourceObject("ReceiptDateText") %>', dataIndex: "RECEIPTDATE", width: 120, sortable: true, renderer: function (v) { return getFormatDate(v, "yyyy-MM-dd HH:mm:ss"); } },{ header: '<% = GetLocalResourceObject("BankTxnAmountText") %>', dataIndex: "BANKTXNAMOUNT", width: 100, sortable: true, renderer: function (v) { return v.toFixed(2); } }],bbar: new Ext.PagingToolbar //分页
        ({pageSize: m_pageSize,store: BankOrderstore,displayInfo: true, //非要为true,不然不会显示下面的分页按钮
            items: ['-', { text: "确认退款", iconCls:"recheck", handler: DoRefund_Click }        //就是这个底部按钮调用的]}),ds: BankOrderstore,sm:check,                        //selModel这样checkbox才能选store: BankOrderstore});gvResult.render();                   //呈现//自动判断是否全选并选中或不选中表头的checkbox  Ext.override(Ext.grid.CheckboxSelectionModel, {onMouseDown: function (e, t) {if (e.button === 0 && t.className == 'x-grid3-row-checker') { // Only fire if left-click
                e.stopEvent();var row = e.getTarget('.x-grid3-row');// mouseHandled flag check for a duplicate selection (handleMouseDown) call  if (!this.mouseHandled && row) {//alert(this.grid.store.getCount());  var gridEl = this.grid.getEl(); //得到表格的EL对象  var hd = gridEl.select('div.x-grid3-hd-checker'); //得到表格头部的全选CheckBox框  var index = row.rowIndex;if (this.isSelected(index)) {this.deselectRow(index);var isChecked = hd.hasClass('x-grid3-hd-checker-on');//判断头部的全选CheckBox框是否选中,如果是,则删除  if (isChecked) {hd.removeClass('x-grid3-hd-checker-on');}} else {this.selectRow(index, true);//判断选中当前行时,是否所有的行都已经选中,如果是,则把头部的全选CheckBox框选中  if (gridEl.select('div.x-grid3-row-selected').elements.length == gridEl.select('div.x-grid3-row').elements.length) {hd.addClass('x-grid3-hd-checker-on');};}}}this.mouseHandled = false;},onHdMouseDown: function (e, t) {/** *大家觉得上面重写的代码应该已经实现了这个功能了,可是又发现下面这行也重写了 *由原来的t.className修改为t.className.split(' ')[0] *为什么呢?这个是我在快速点击头部全选CheckBox时, *操作过程发现,有的时候x-grid3-hd-checker-on这个样式还没有删除或者多一个空格,结果导致下面这个判断不成立 *去全选或者全选不能实现 */if (t.className.split(' ')[0] == 'x-grid3-hd-checker') {e.stopEvent();var hd = Ext.fly(t.parentNode);var isChecked = hd.hasClass('x-grid3-hd-checker-on');if (isChecked) {hd.removeClass('x-grid3-hd-checker-on');this.clearSelections();} else {hd.addClass('x-grid3-hd-checker-on');this.selectAll();}}}});var getBgw = function () {if (gvResult.getSelectionModel().hasSelection()) {var record = gvResult.getSelectionModel().getSelections();var mycars = new Array();for (var i = 0; i < record.length; i++) {mycars[i] = record[i].data.REFUNDTXNID;}return mycars;} else {alert("请选择要操作的记录!");  }}function DoRefund_Click() {var values = getBgw();if (!values) return false;              //判断Ext.MessageBox.confirm("请确认", "是否要删除选中的信息", function (button, text) {if (button == "yes") {Ext.Ajax.request({url: "../Handler/TxnRefund.ashx",method: "post",params: { "method": "DOREFUND", "REFUNDTXNIDS": values },success: function (response, option) {var result = Ext.util.JSON.decode(response.responseText);if (result.Flag == true) {Ext.MessageBox.alert("提示", "删除成功");gvResult.render();} else {Ext.MessageBox.alert("提示", result.RespMessage);}},failure: function () {}});} else {return;}});}

下面是上面说到的不太成熟的判断是否全选并选中或不选中表头的checkbox

   //自动判断是否全选并选中或不选中表头的checkbox
//    function autoCheckGridHead() {
//        var hd_checker = gvResult.getEl().select('div.x-grid3-hd-checker');
//        var hd = hd_checker.first();
//        if (hd != null) {
//            if (gvResult.getSelectionModel().getSelections().length !=//                gvResult.getStore().getCount()) {
//                //清空表格头的checkBox
//                if (hd.hasClass('x-grid3-hd-checker-on')) {
//                    hd.removeClass('x-grid3-hd-checker-on');     //x-grid3-hd-checker-on
//                    //gvResult.getSelectionModel().clearSelections();
//                }
//            } else {
//                if (gvResult.getStore().getCount() == 0) { //没有记录的话清空;
//                    return;
//                }
//                hd.addClass('x-grid3-hd-checker-on');
//                gvResult.getSelectionModel().selectAll();
//            }
//        }//    }

转载于:https://www.cnblogs.com/hongdada/archive/2013/01/07/2849220.html

Extjs checkbox 多删除相关推荐

  1. C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

    本文转载自:http://www.liangshunet.com/ca/201309/586362553.htm 亮术网 2020-03-07 本网原创 DataGridView控件功能十分强大,显示 ...

  2. jquery复选框checkbox实现删除

    实现这样一个基本需求,页面有很多数据,可以删除一条或多条,删除前判断是否选中至少一条,否则提示. function deleteUser() { //当时是想把内容以str+="" ...

  3. php怎么删除多条,php 用checkbox一次性删除多条记录的方法

    一个简单示例 现有一个学生信息数据库,需要一次性删除多条记录 创建一个名为del.php的文件 代码如下: $link=mysql_connect("localhost",&quo ...

  4. php jquery 全选删除,jQuery+php简单实现全选删除的方法

    jQuery+php简单实现全选删除的方法 发布于 2017-08-06 10:13:21 | 66 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  5. php全选删除,php+ajax简单实现全选删除的方法

    本文实例讲述了php+ajax简单实现全选删除的方法.分享给大家供大家参考,具体如下: 删除 ↑全选checkbox ↑为删除项,同一命名class为ckb,方便操作,同时将id值巧妙的放入input ...

  6. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等

    jQuery操作复选框checkbox技巧总结 --- 设置选中.取消选中.获取被选中的值.判断是否选中等 一.checked属性定义 先了解下input标签的checked属性: 1.HTML &l ...

  7. 你真的了解checkbox的用法吗?

    checkbox的用法 一.checked属性定义 1.HTML之 `` 标签的 checked 属性 定义和用法 HTML 4.01 与 HTML5之间的差异 HTML 与 XHTML 之间的差异 ...

  8. Android源码分析(三):Mms模块总结(一)

    简单介绍Android短信模块,其中每个公司在这部分都应该做了修改,因此与原生不完全一样.进入Mms应用开机会初始化一次,之后进入会检测更新,手动强行停止再启动同样会初始化(强行停止你可以再设置-&g ...

  9. 分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月11日-6月17日)

    分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月11日-6月17日) 本周Silverlight学习资源更新 Silverlight 自定义tooltip _e ...

最新文章

  1. JS 实现下载Blod文件
  2. ospf虚链路原理和配置
  3. c语言字符串截取_一文搞懂 C 语言 #、##、__VA_ARGS__
  4. 罕有数据库系统之比拟 - Oracle数据库
  5. python常用程序代码(持续更新收集)
  6. XP自动搜索功能修复
  7. 都说互联网寒冬,有人却获一线大厂六枚Offer,他是怎么做到的?
  8. rs485接口上下拉_RS485上拉下拉电阻计算详解
  9. 计算机的符号名称大全集,特殊符号大全(标点符号/括号等)
  10. oracle 创建新的表空间,oracle创建表空间新建新用户并受权
  11. MATLAB算法实战应用案例精讲-【图像处理】缺陷检测(补充篇)(附matlab实现代码)
  12. 基于SSM的在线点餐系统的设计与实现
  13. 尝试做自己不喜欢的事,并努力将其做好
  14. Mysql COUNT()条件计数
  15. 蔡康永的情商课-笔记
  16. 我的世界mysql插件_MySQL Inventory Bridge — 跨服背包[1.7-1.15]【Bukkit】
  17. python简笔画程序_只用C++和Python,让你的简笔画实时动起来!
  18. python爬取小说章节_python之如何爬取一篇小说的第一章内容
  19. 高速—HDMI布线规则
  20. Hive动态分区和分桶

热门文章

  1. 看奥运之一:实力是最重要的
  2. warning: pointer of type 'void *' used in arithmetic
  3. android 视频开发sd卡,Android开发之SD卡文件操作分析
  4. python内循环只执行一次_如何1分钟内从3600只股种选出黑马股,仅分享这一次(太透彻了)...
  5. apache php mysql 整合_PHP+Apache+MySQL整合
  6. python超神之路:创建对象的9种方法
  7. CocosPods 引入项目,哪些文件需要上传到服务器呢?
  8. 比较python类的两个instance(对象) 是否相等
  9. mysql 字段存储多个值 ,判断一个值是否在其中
  10. Oracle 数据库字典 sys.obj$ 表中关于type#的解释