我们在使用Grid的rowEditing插件时希望能够根据自己的业务需求能够动态的实现那一列是用户可以编辑的,那一列用户不可编辑,下面给出一个方案能够实现rowEditing的动态编辑功能。

之前我通过rowEditing的beforeedit事件获得它的行对象来控制列是否可编辑,这样做之后效果是实现了,但是之后它又会被置为可编辑,以此想到我们直接控制grid的editor配置,控制这个edior的readOnly属性,在数据grid的store数据显示之前,肯定会触发事件,这样我们在事件里面来改变grid的editor配置。

下面这段代码是我在一个按钮中控制rowEditing的动态编辑:

 xtype: 'button',
2 text: '添加',
3 tooltip: '添加',
4 cls : 'x-btn-text-icon',
5 icon: '../images/extjs/add.png',
6 handler: function(){ //判断当前是引入操作的数据还是查询的数据
var opertype = false;//是不是引入操作
jinmgl_grid_store.each(function(record){
if(parseInt(record.get('id')) < 0){
opertype = true;
}
});
if(opertype){
Ext.Msg.alert("提示信息", "请点击查询按钮查询数据!");
return false;
} //将所有信息都置为可以编辑的
if(typeof(rowEditingOfJinmgl.grid) != "undefined"){
for(var i=0; i<rowEditingOfJinmgl.grid.columns.length; i++){
  var editor = rowEditingOfJinmgl.grid.columns[i];
if(typeof(editor.editor) != "undefined"){
editor.editor.readOnly = false;
}
}
}
if(typeof(rowEditingOfJinmgl.editor) != "undefined"){
for(var i=0; i<rowEditingOfJinmgl.editor.items.items.length; i++){
var editor = rowEditingOfJinmgl.editor.items.items[i];
if(typeof(editor) != "undefined"){
rowEditingOfJinmgl.editor.items.items[i].readOnly = false;
}
}
} rowEditingOfJinmgl.cancelEdit();
var newRow = Ext.create('jinmgl_grid_data',{
id: '0',
operatedate : Ext.getCmp('operateDate').getValue() == null ? Ext.Date.clearTime(new Date(), 'yy-mm-dd') : Ext.Date.clearTime(Ext.getCmp('operateDate').getValue(), 'yy-mm-dd'),
storeposition: '',
coaltype: '',
supplierarea: '',
supplierdep: '',
amount: 0,
qe: 0,
ag: 0,
wq: 0,
sgq: 0,
vdaf: 0,
price: 0,
comments:'',
jinmid: 0
});
var position = jinmgl_grid_store.getCount();
jinmgl_grid_store.insert(position,newRow);
rowEditingOfJinmgl.startEdit(position,position);
59 }

extjs中rowEditing动态编辑的更多相关文章

  1. extjs 中动态给gridpanel 复选框赋值

    最近在搞extjs时需要动态根据数据给gridpanel的复选框赋值 网上看了很多 ,多不行,最后找到一个好使的方法 如下: RBACformPanel.getSelectionModel().sel ...

  2. extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)

    在公司做的一个OA项目中,曾经就遇到了这样的一个问题:(我是在jsp中的div中将js render到div中去的)第一次访问此界面的时候,formpanel上的组件能正常显示,不刷新整个页面的前提下 ...

  3. Extjs之rowEditing编辑状态时列不对齐

    Extjs在使用rowEditing的时候,会在每一列加上editor属性,表示当处于编辑状态时这一列的值是什么类型的,后突然发现在rowEditing处于编辑状态时每一列的宽度边框了,如果列数非常多 ...

  4. ExtJs 3.0 动态生成 CheckBox

    在开发过程中,往往需要利用数据动态生成Checkbox.如权限节点.考试答案,调查选项等等.在Extjs中,有两种方法来获取后台数据,一是Ext.Ajax()方法,第二种是利用 Store,store ...

  5. 转: ExtJS中xtype一览

    转: ExtJS中xtype一览 基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycl ...

  6. Extjs中grid表格中去掉红三角

    在编辑Extjs的gridpanel的时候,数据有错误或是修改在每个单元格上都会出现红色的小三角,在每个列上面可以配置allowBlank: false来标识这个不可以为空 有的时候在保存数据时如果不 ...

  7. iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见

    iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见 (2015-12-05 12:48:20)[编辑][删除] 转载▼     首先我们先明确一下问题: 1.因为UI是在主线 ...

  8. Delphi中的动态包,有详细建立包的步骤(答案很简单:因为包的功能强大)

    为什么要使用包? 答案很简单:因为包的功能强大.设计期包(design-time package)简化了自定义组件的发布和安装:而运行期包(run-time package)则更是给传统的程序设计注入 ...

  9. 如何在网页中浏览和编辑DWG文件 梦想CAD控件

    如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2  是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...

随机推荐

  1. (转载)PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题

    (转载)http://be-evil.org/post-153.html PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function ...

  2. Linux crontab相关

    定时自动启动任务crontab命令 文章目录 [隐藏] crontab简介 crontab用法 crontab例子 每个操作系统都有它的自动定时启动程序的功能,Windows有它的任务计划,而Linu ...

  3. oracle 大文本由clob来存

    file字段是varchar2类型(最多只能存储4000字符),空间不够用了,因此将其改为clob类型(支持4G存储量). 但是如果该字段中已经有数据,是不为空的,直接用语句改,会报错. 那么需要借助 ...

  4. python通过SMTP发送邮件失败,报错505/535

    python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用pyth ...

  5. 二维码开源库zbar、zxing使用心得

    首先说明我的测试场景是“识别打印在纸上的二维码”,在扫描结果中寻找二维码并进行识别,而不是直接让摄像头对着二维码扫描. zbar和zxing用的都是自己从github上clone的c++源码/接口编译 ...

  6. MYSQL 体系结构图 log commit

  7. POJ 1113 Wall 求凸包的两种方法

    Wall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31199   Accepted: 10521 Descriptio ...

  8. Python可迭代对象、迭代器和生成器

    Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...

  9. myeclipse跟eclipse中使用github做版本控制工具

    今天早上花了一上午的时间,了解了在myeclipse跟eclipse中使用github. 好吧 说说怎么做的,让大伙少走一点路,我就简单描述下,需要软件的私信我 第一:下载git 第二:靠谱.但是pu ...

  10. spring aop pointcut 切入点是类的公共方法(私有方法不行),还是接口的方法

    spring aop pointcut 切入点是类的公共方法(私有方法不行),还是接口的方法 类的公共方法可以,但是私有方法不行 测试一下接口的方法是否能够捕捉到