97. ExtJS之EditorGridPanel afteredit属性
转自:https://zccst.iteye.com/blog/1328869
1.
1 之前大多用Ext.grid.GridPanel,现在需要可编辑功能,发现比以前稍复杂一些。 2 就是需要对指定列进行可编辑设置,并获取编辑后的值,存入数据库。 3 1,对指定列进行可编辑设置 4 比如下拉菜单、日历等。 5 6 2,获取编辑后的值 7 可使用afteredit事件,并用panel的on()方法监听。 8 当然也有beforeedit事件。 9 10 不过,也可以直接在可编辑的下拉菜单中使用listener监听并存入数据库。 11 Js代码 收藏代码 12 13 listeners : { 14 'select' : function(obj, data, index){ 15 selectedValue = data.data.name; 16 17 } 18 } 19 20 21 3,存入数据库 22 使用Ext.Ajax.request({url:URL,params:"key:value",success:function(){},failure:function(){}}); 23 24 例子 25 Js代码 收藏代码 26 27 var store = new Ext.data.JsonStore({ 28 url: 'api/divide_suit.php?action=suitList', 29 listeners:{ 30 'loadexception' : function(e){ 31 alert(e.toString()); 32 } 33 }, 34 fields:[ 35 {name:'id'}, 36 {name:'suit'}, 37 {name:'type'} 38 ] 39 }); 40 store.load(); 41 42 var colM=new Ext.grid.ColumnModel([ 43 {header:"编号",dataIndex:'id',width:80,sortable:true}, 44 {header:"套餐名称",dataIndex:"suit",width:240,sortable:true}, 45 {header:"套餐类型",dataIndex:"type",sortable:true,width:160, 46 editor:new Ext.form.ComboBox({ 47 transform:"suitTypeList", 48 triggerAction:'all', 49 lazyRender:true 50 }) 51 } 52 ]); 53 54 var panel = new Ext.grid.EditorGridPanel({ 55 baseCls: 'x-plain', 56 id:grid_id, 57 title:'将套餐分组', 58 closable:true, 59 cm:colM, 60 store:store, 61 //autoExpandColumn:2 //自动将指定列扩展至最宽。 62 }); 63 64 panel.on("afteredit", afterEdit, panel); //EditorGridPanel的afteredit事件监听 65 function afterEdit(obj){ 66 var r = obj.record;//获取被修改的行 67 var l = obj.field; //获取被修改的列 68 var suit_id = r.get("id"); 69 var suit_name = r.get("suit"); 70 var suit_type = r.get(l); 71 //alert('suit_id='+suit_id+' suit_name='+suit_name+' suit_type='+suit_type);return; 72 Ext.Ajax.request({ 73 url: 'api/divide_suit.php?action=edit_suit_type', 74 params: "suit_id="+suit_id + "&suit_name="+suit_name + '&suit_type='+suit_type, 75 success: function(resp,opts) { 76 var respText = Ext.util.JSON.decode(resp.responseText); 77 if(respText.status != 0){ alert(respText.msg); }; 78 }, 79 failure: function(resp,opts) { Ext.Msg.alert('保存失败', "请重试!"); } 80 }); 81 } 82 83 84 批注:其他几个参数 85 1,grid_id 86 2,渲染panel到什么地方。 87 88 下拉菜单还需要在html中写: 89 Html代码 收藏代码 90 91 <select name="suitTypeList" id="suitTypeList"> 92 <option value='主流套餐'>主流套餐</option> 93 <option value='均衡套餐'>均衡套餐</option> 94 <option value='存储套餐'>存储套餐</option> 95 <option value='其他套餐'>其他套餐</option> 96 </select> 97 98 99 100 101 附:获取值afteredit的几种写法 102 1, 103 grid.on('afteredit',function(e){ //获得Ext.grid.EditorGridPanel编辑信息 104 e.row;//修改過的行從0開始 105 e.column;//修改列 106 e.originalValue;//原始值 107 e.value;//新值 108 }); 109 来源:http://blog.csdn.net/yanji94521/archive/2008/06/16/2 110 111 2, 112 grid.on("afteredit", afterEdit, grid); //EditorGridPanel的afteredit事件监听 113 function afterEdit(obj){ 114 var r = obj.record;//获取被修改的行 115 var l = obj.field; //获取被修改的列 116 var id = r.get("id"); 117 var lie = r.get(l); 118 Ext.Ajax.request({ 119 url: '_action.php?action=edit', 120 params: "id=" + id + "&name=" + l + '&value=' + lie 121 ); 122 } 123 来源:http://hi.baidu.com/_ollie/blog/item/c9f8fac305f7fe53b219a8f8.html 124 125 3, 126 grid.on("afteredit",afterEidt,grid); 127 function(obj) 128 { 129 obj.row;;//修改过的行从0开始 130 obj.column;//修改列 131 obj.originalValue;//原始值 132 obj.value;//修改后的值 133 obj.grid;//当前修改的grid 134 obj.field;//正在被编辑的字段名 135 obj.record;//正在被编辑的行 136 137 } 138 139 140 141 142 但是,transform属性是将现有的<select>元素转化为ComboBox,transform的值是<select>元素的id,dom节点或元素。在设置了transform的情况下,如果将包含这个ComboBox的panel销毁,再重新生成一个该panel的对象时,会出现错误:s is null。出错的位置在ext-all-debug.js中,就是找不到当前的select元素。目前,这个问题不知如何解决。 143 144 一种替代的方法是直接用store对ComboBox进行初始化。 145 Js代码 收藏代码 146 147 var colM=new Ext.grid.ColumnModel([ 148 {header:"编号",dataIndex:'id',width:80,sortable:true}, 149 {header:"套餐名称",dataIndex:"suit",width:240,sortable:true}, 150 {header:"套餐类型",dataIndex:"type",width:160, 151 editor:new Ext.form.ComboBox({ 152 id : 'x-combo-list-small', 153 store: ['主流套餐','均衡套餐','存储套餐','其他套餐'], 154 allowBlank:false, 155 triggerAction: 'all', 156 emptyText:'套餐类型...' 157 }) 158 } 159 ]); 160 161 var panel = new Ext.grid.EditorGridPanel({ 162 baseCls: 'x-plain', 163 id:grid_id, 164 title:'将套餐分组', 165 closable:true, 166 cm:colM, 167 store:store, 168 frame:true, 169 clicksToEdit:1,//默认是点击2次 170 loadMask: { 171 msg: '数据获取中,请稍候...' 172 }, 173 region:'center' 174 //autoExpandColumn:2 //自动将指定列扩展至最宽。 175 });
97. ExtJS之EditorGridPanel afteredit属性相关推荐
- ExtJs之gridPanel的属性表格,编辑表格,表格分页,分组等技巧
这里藏的配置确实多.. 慢慢实践吧. <!DOCTYPE html> <html> <head><title>ExtJs</title>&l ...
- extjs获取元素name属性值_【ExtJS】各种获取元素组件方法
1.get().getDom().getCmp().getBody().getDoc(): get(id/obj): get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象, Ex ...
- Extjs中EditorGridPanel粘贴Excel复制的数据
2019独角兽企业重金招聘Python工程师标准>>> Ext.onReady(function() {var store = new Ext.data.JsonStore({fie ...
- 第一个ExtJS练习(添加用户面板)
1.[准备] 我是在visual studio里面建立了一个asp.net MVC项目,然后导入ExtJS必要的包,然后写的. ExtJS5.1版本下载:https://pan.baidu.com/s ...
- EXTJS开发过程遇到的一些问题的小结(转自麦田守望者)
前做过一阵的ExtJs开发,从最傻的符号问题,到后来的渲染问题都碰到过.下面是个人开发过程中做的一些总结,多是问题的应对: 1.引入js和css文件时注意文件的路径问题: 2.导入ext-base.j ...
- Windows Server® 2008 Enterprise 组件服务 找不到 ”Microsoft Word 97 - 2003 文档“组件
闲话少叙,直奔主题,维护一个项目,给客户添加了一个公文流转功能,主要使用金格office 中间件,本地环境运行一切ok,确认无误就给客户更新程序,在配置office组件服务时未找到 "Mic ...
- Swift 中 String 取下标及性能问题
取下标 String String 用 String.Index 取下标(subscript)得到 Character,String.Index 要从 String 中获取 let greeting ...
- 如题,用C#语言 如何给下拉列表框动态添加数据?,C#复习题 单项选择题
友情提示:此篇文章大约需要阅读 62分钟1秒,不足之处请多指教,感谢您的阅读. C#2018年期末复习题汇总-单项选择题 1. C#语言取消了( B )语法. A. 循环 B.指针 C. 判断 D. ...
- 应用HTMLParser解释操作HTML内容
根据"笑起来像你"发过来的原装代码展示如下: dfdasfads.java1importjava.util.Vector;23importorg.htmlparser.Attrib ...
- 正经人一辈子都用不到的 JavaScript 方法总结 (二)
前言 现在有这样一个需求:用一个对象存储某学生的各科成绩,要求每次只能改变科目分数,不能再添加或者删除科目. 分析一下,这个需求其实就是需要创建一个固定属性的对象,其属性不可增删,但属性值可更改. 有 ...
最新文章
- C#设计模式-1、适配器模式(Adapter Pattern)(转载)
- 关键词与关键词之间的相关度计算
- php 向html追加元素,在PHP中存储兄弟元素的属性和内部HTML
- 前端清单之Vue.js篇
- ggplot2作图详解:标尺(scale)设置
- 冒泡排序,插入排序--- PYTHON
- linux docker安装_Linux -- Docker安装
- Python学习笔记之os模块
- python tkinter 窗口最大化
- choco安装软件包指定版本
- 欧美html游戏安卓,HTML5 Games - Rated M or for 18+ only
- myeclipse cracker
- Android Studio课堂总结05
- 《魔兽世界》中的小背景
- 自动化运维工具ansible(安装与模块介绍)
- 聊一聊ResNet系列(ResNet、ResNeXt)
- halo开源博客搭建微信小程序实现内容同步-总结
- 计算机重启恢复系统怎么操作,电脑只要关机重启系统就会自动还原?-电脑怎么系统还原...
- AI 入行那些事儿(8)人工智能 vs 人类智能
- PI3HDX12211ZHEX DIODES/美台 TQFN42 hdmi视频开关芯片