在EditorGridPanel中无法使用默认的CheckBox控件,因此采用第三方扩展的控件实现,

以下是Ext.grid.CheckColu扩展类:

Ext.grid.CheckColumn = function(config){Ext.apply(this, config);if (!this.id) {this.id = Ext.id();}this.renderer = this.renderer.createDelegate(this);
};Ext.grid.CheckColumn.prototype = {init: function(grid){this.grid = grid;this.grid.on('render', function(){var view = this.grid.getView();view.mainBody.on('mousedown', this.onMouseDown, this);}, this);},onMouseDown: function(e, t){if (t.id == this.id) {e.stopEvent();var index = this.grid.getView().findRowIndex(t);//行号var cindex = this.grid.getView().findCellIndex(t);//列好var record = this.grid.store.getAt(index);//行记录var field = this.grid.colModel.getDataIndex(cindex);//列名var value = !record.data[this.dataIndex];//点击后,获得当前checkbox值的相反值record.set(this.dataIndex, value);//设定checkbox被选择时候的值//事件的参数var e = {grid: this.grid,record: record,field: field, originalValue: record.data[this.dataIndex],value: !record.data[this.dataIndex],row: index,column: cindex};//afterEdit事件 this.grid.fireEvent("afteredit", e); //申请事件,参数        }},renderer: function(v, p, record){p.css += ' x-grid3-check-col-td';return '<div id="' + this.id + '" class="x-grid3-check-col' + (v ? '-on' : '') + '"> </div>';}
};

在工程中使用:

首先创建对象

var checkColumn = new Ext.grid.CheckColumn({   header: "",   dataIndex: 'indoor',   width: 55   });  

然后,在editorgrid组件中引入插件plugins:checkColumn(必须的)。

创建cm加入checkColumn:

cm: new Ext.grid.ColumnModel(   [   checkColumn   ,   {   id: 'min'  ,header: '最小值'  ,dataIndex: 'min'  ,editor: new Ext.form.NumberField({   allowBlank: false  })   )  

创建Record对象也要加入相关内容:

var Record = Ext.data.Record.create([   {name: 'indoor', type: 'bool'}   ,{name: 'min'}   ,{name: 'max'}   ,{name: 'alarmType'}   ]);

最后创建Record:

var newRecord = new Record({indoor: false,min: min, max: max, alarmType: '轻微'});

前台如果调用afterEdit事件

//编辑后触发的事件,有异常,自动选中checkbox
function afterEdit(e){ //如果是CHECK_EXCEPTION列if (e.field == "CHECK_EXCEPTION") {//checkbox如果被选中if (e.record.get("CHECK_EXCEPTION") == true) {   //仓库系统状态为1         if(e.record.get("STATE")=="1")//设置仓库实际状态为0e.record.set("REAL_STATE", "0");//仓库实际状态为0else if(e.record.get("STATE")=="0")//设置仓库实际状态为1e.record.set("REAL_STATE", "1");elsee.record.set("REAL_STATE", "");}//checkbox如果被取消else if(e.record.get("CHECK_EXCEPTION") == false){           e.record.set("REAL_STATE", "");           }}
}

参考文章三篇:

EXT EditorGridPanel 中使用Ext.grid.CheckColumn (用来创建checkbox列)

http://blog.csdn.net/davidxj/archive/2009/04/06/4052348.aspx

Extjs,Ext.grid.CheckColumn 列修正版 (这个afterEdit例子不太好用)

http://blog.csdn.net/phker/archive/2009/06/25/4294241.aspx

  Ext.grid.CheckColumn问题 (从这篇获得afterEidt例子)

http://www.vifir.com/bbs/html/20080722/1736736.html

界面:

EditorGridPanel 中使用checkbox列,并包含afterEdit事件相关推荐

  1. C# 怎样判断 datagridview 中的checkbox列是否被选中

    开发(winform)时碰到这个问题 C# 怎样判断 datagridview 中的checkbox列是否被选中,错误原因都C#对类型判断相当严格,为了避免大家以后多走弯路,把我的思路和大家说一下,希 ...

  2. pandas基于dataframe字符串数据列不包含特定字符串来筛选dataframe中的数据行(rows where values do not contain substring)

    pandas基于dataframe字符串数据列不包含(not contains)特定字符串来筛选dataframe中的数据行(rows where values do not contain subs ...

  3. pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list

    pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list(index of rows with missing values in dataframe ...

  4. C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常

    C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常 参考文章: (1)C# winform ...

  5. Extjs EditorGridPanel中ComboBox列的显示问题

    EditorGridPanel中嵌入ComboBox通常不会正常显示ComboBox的store中本想显示字段,而是显示的EditorGridPanel中 store的dataindex指定的字段内容 ...

  6. 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...

  7. GROUP BY 子句中 选择列表中的列无效,因为该列没有包含在聚合函数或

    T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句,指定结果存入新表 FROM      --FROM子句,指定表或视图 [W ...

  8. EXCEL中筛选一列数据中所包含的某些数字,返回它前面的序号

    EXCEL中筛选一列数据中包含某些数字.返回它前面的序号.(0x040403为要含的数字) 思想是将所要查找的内容替换为一串很长的字符串,用长度区分它们 在C2单元格中键入 =IF(LEN(SUBST ...

  9. 选择列表中的列 '.......' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

    错误:消息 8120,级别 16,状态 1,第 51 行 选择列表中的列 'Employee.EmployeeID' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 题目:查询最低收入 ...

最新文章

  1. 《2019人工智能发展报告》出炉
  2. [Linux] 批量添加用户
  3. c++实现sscom串口助手循环发送_串口通讯你真的会了吗?不妨看看这些经验
  4. modelMapper.map的一个使用例子
  5. php-fpm的重启/关闭
  6. 控制台ui_设计下一代控制台UI
  7. python删除数据库_用Python删除Cosmos数据库文档
  8. Could not load driverClass ${jdbc.driver}
  9. android 透明度_Android智能视图翻转器
  10. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  11. Java compiler level does not match the version of the installed Java project facet.问题
  12. 第四章——权限提升分析及防御
  13. 3.21 Refused Bequest 被拒绝的馈赠
  14. QQ空间官方账号被黑产利用漏洞分析
  15. zheng项目新建一个module学习学习
  16. 台湾中华大学-田庆诚教授-射频放大器-观看笔记 1
  17. 【编译原理】第五章 语法制导翻译
  18. 分析5 中值定理与Taylor公式
  19. stm32驱动NRF24L01_原理+代码解析
  20. python 爬虫request ssl_Python request SSL证书问题

热门文章

  1. [源码和文档分享]基于C#和MYSQL数据库实现的课程自动考试系统
  2. 计算机网络 chapter3数据链路层
  3. 操作系统中死锁的概念
  4. [Java2 入门经典]第6章 类的扩展与继承
  5. Developer Express 之 XtraReport如何动态绑定数据
  6. Devpress.XtraGrid.GridControl.GridView属性
  7. 华为RH2285H V2设备管理口白屏的解决方法
  8. 打包Spring Boot应用
  9. fstab自动挂载_Linux系统挂载硬盘详解
  10. 小米盒子4用u盘导入html文件格式,最新图文教程:小米盒子怎么用U盘安装第三方应用...