97. ExtJS之EditorGridPanel afteredit属性
转自:https://zccst.iteye.com/blog/1328869
1.
之前大多用Ext.grid.GridPanel,现在需要可编辑功能,发现比以前稍复杂一些。
就是需要对指定列进行可编辑设置,并获取编辑后的值,存入数据库。
1,对指定列进行可编辑设置
比如下拉菜单、日历等。 2,获取编辑后的值
可使用afteredit事件,并用panel的on()方法监听。
当然也有beforeedit事件。 不过,也可以直接在可编辑的下拉菜单中使用listener监听并存入数据库。
Js代码 收藏代码 listeners : {
'select' : function(obj, data, index){
selectedValue = data.data.name; }
} 3,存入数据库
使用Ext.Ajax.request({url:URL,params:"key:value",success:function(){},failure:function(){}}); 例子
Js代码 收藏代码 var store = new Ext.data.JsonStore({
url: 'api/divide_suit.php?action=suitList',
listeners:{
'loadexception' : function(e){
alert(e.toString());
}
},
fields:[
{name:'id'},
{name:'suit'},
{name:'type'}
]
});
store.load(); var colM=new Ext.grid.ColumnModel([
{header:"编号",dataIndex:'id',width:80,sortable:true},
{header:"套餐名称",dataIndex:"suit",width:240,sortable:true},
{header:"套餐类型",dataIndex:"type",sortable:true,width:160,
editor:new Ext.form.ComboBox({
transform:"suitTypeList",
triggerAction:'all',
lazyRender:true
})
}
]); var panel = new Ext.grid.EditorGridPanel({
baseCls: 'x-plain',
id:grid_id,
title:'将套餐分组',
closable:true,
cm:colM,
store:store,
//autoExpandColumn:2 //自动将指定列扩展至最宽。
}); panel.on("afteredit", afterEdit, panel); //EditorGridPanel的afteredit事件监听
function afterEdit(obj){
var r = obj.record;//获取被修改的行
var l = obj.field; //获取被修改的列
var suit_id = r.get("id");
var suit_name = r.get("suit");
var suit_type = r.get(l);
//alert('suit_id='+suit_id+' suit_name='+suit_name+' suit_type='+suit_type);return;
Ext.Ajax.request({
url: 'api/divide_suit.php?action=edit_suit_type',
params: "suit_id="+suit_id + "&suit_name="+suit_name + '&suit_type='+suit_type,
success: function(resp,opts) {
var respText = Ext.util.JSON.decode(resp.responseText);
if(respText.status != 0){ alert(respText.msg); };
},
failure: function(resp,opts) { Ext.Msg.alert('保存失败', "请重试!"); }
});
} 批注:其他几个参数
1,grid_id
2,渲染panel到什么地方。 下拉菜单还需要在html中写:
Html代码 收藏代码 <select name="suitTypeList" id="suitTypeList">
<option value='主流套餐'>主流套餐</option>
<option value='均衡套餐'>均衡套餐</option>
<option value='存储套餐'>存储套餐</option>
<option value='其他套餐'>其他套餐</option>
</select> 附:获取值afteredit的几种写法
1,
grid.on('afteredit',function(e){ //获得Ext.grid.EditorGridPanel编辑信息
e.row;//修改過的行從0開始
e.column;//修改列
e.originalValue;//原始值
e.value;//新值
});
来源:http://blog.csdn.net/yanji94521/archive/2008/06/16/2 2,
grid.on("afteredit", afterEdit, grid); //EditorGridPanel的afteredit事件监听
function afterEdit(obj){
var r = obj.record;//获取被修改的行
var l = obj.field; //获取被修改的列
var id = r.get("id");
var lie = r.get(l);
Ext.Ajax.request({
url: '_action.php?action=edit',
params: "id=" + id + "&name=" + l + '&value=' + lie
);
}
来源:http://hi.baidu.com/_ollie/blog/item/c9f8fac305f7fe53b219a8f8.html 3,
grid.on("afteredit",afterEidt,grid);
function(obj)
{
obj.row;;//修改过的行从0开始
obj.column;//修改列
obj.originalValue;//原始值
obj.value;//修改后的值
obj.grid;//当前修改的grid
obj.field;//正在被编辑的字段名
obj.record;//正在被编辑的行 } 但是,transform属性是将现有的<select>元素转化为ComboBox,transform的值是<select>元素的id,dom节点或元素。在设置了transform的情况下,如果将包含这个ComboBox的panel销毁,再重新生成一个该panel的对象时,会出现错误:s is null。出错的位置在ext-all-debug.js中,就是找不到当前的select元素。目前,这个问题不知如何解决。 一种替代的方法是直接用store对ComboBox进行初始化。
Js代码 收藏代码 var colM=new Ext.grid.ColumnModel([
{header:"编号",dataIndex:'id',width:80,sortable:true},
{header:"套餐名称",dataIndex:"suit",width:240,sortable:true},
{header:"套餐类型",dataIndex:"type",width:160,
editor:new Ext.form.ComboBox({
id : 'x-combo-list-small',
store: ['主流套餐','均衡套餐','存储套餐','其他套餐'],
allowBlank:false,
triggerAction: 'all',
emptyText:'套餐类型...'
})
}
]); var panel = new Ext.grid.EditorGridPanel({
baseCls: 'x-plain',
id:grid_id,
title:'将套餐分组',
closable:true,
cm:colM,
store:store,
frame:true,
clicksToEdit:1,//默认是点击2次
loadMask: {
msg: '数据获取中,请稍候...'
},
region:'center'
//autoExpandColumn:2 //自动将指定列扩展至最宽。
});
97. ExtJS之EditorGridPanel afteredit属性的更多相关文章
- ExtJS组件的xtype属性列表
ExtJS的应用界面是由很多小部件组合而成的,这些小部件被称作“组件(Component)”,所有组件都是Ext.Component的子类,Ext.Component提供了生命周期管理包括初始化.渲染 ...
- ExtJs之gridPanel的属性表格,编辑表格,表格分页,分组等技巧
这里藏的配置确实多.. 慢慢实践吧. <!DOCTYPE html> <html> <head> <title>ExtJs</title> ...
- extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)
在公司做的一个OA项目中,曾经就遇到了这样的一个问题:(我是在jsp中的div中将js render到div中去的)第一次访问此界面的时候,formpanel上的组件能正常显示,不刷新整个页面的前提下 ...
- Extjs GridPanel 中放入 Combox显示问题
http://weijun8611-126-com.iteye.com/blog/566201 在项目中使用了extjs的editorgridpanel,但是其中的combobox在选择了相应的选项后 ...
- ExtJs基础知识总结:Dom、IFrame和TreePanel、TabPanel(三)
概述 ExtJs是另外一种操作封装JavaScript的类库与Jquery同类.所以对Dom的操作也是支持的,比如修改Div内Html内容等操作.有几个问题需要思考下: 1.ExtJs也支持IFram ...
- EXTJS项目实战经验总结一:日期组件的change事件:
1 依据选择的日期,加载相应的列表数据,如图: 开发说明 1 开发思路: 在日期值变化的事件中获得选择后的日期值,传给后台,然后从后台加载相应的数据 2 问题:在查看extjs2.2 的a ...
- 第一个ExtJS练习(添加用户面板)
1.[准备] 我是在visual studio里面建立了一个asp.net MVC项目,然后导入ExtJS必要的包,然后写的. ExtJS5.1版本下载:https://pan.baidu.com/s ...
- CSS之样式属性(背景固定、圆形头像、模态框)
CSS属性 一.宽和高 width属性可以为元素设置宽度. height属性可以为元素设置高度. 块级标签才能设置宽度,内联标签的宽度由内容来决定. div {width: 1000px;backgr ...
- extjs gridpanel 操作行 得到选中行
extjs gridpanel 操作行 得到选中行的列 在Extjs 3.2.0上适合 var model = grid.getSelectionModel(); model.selectAll(); ...
随机推荐
- RTL Compiler之Technology Library
1 Target Library Design Compiler uses the target library to build a circuit. During mapping, Design ...
- shell脚本网络流量实时查看
Linux网络流量实时查看脚本,Centos默认没有自带流量查看工具,通过网上的资料做了一些修改 #!/bin/bash # Author: Ca0gu0 # Script Name: idev.sh ...
- mysql动态执行sql批量删除数据
CREATE PROCEDURE `sp_delete_pushmsg_data`() BEGIN ); ); declare l_dutyno int; ; ; ; ; day),'%Y-%m-%d ...
- NFS指定端口,NFS缓存(转载)
nfs服务端: #编辑/etc/nfsmount.conf,在末尾添加: #RQUOTAD_PORT=30001#LOCKD_TCPPORT=30002#LOCKD_UDPPORT=30002#MOU ...
- c# winform中使用WebKit实现网页与winform的交互
1.工作 一年多了,一直没对自己在工作遇到的问题进行总结,每次遇到问题都要在网上找资料,导致完成项目之后,时间久了就会生疏.所以下定 决定总结自己在工作中遇到的各种问题. 进入正题:第一次写还请大神多 ...
- 【css】最近使用的两种图标字体库
## 0. 前言 比较基础的图标加载:<img src="x.png">和块元素的背景background: url(./x.png). 页面多图标时,使用雪碧图(多个 ...
- 爬虫系列(三) urllib的基本使用
一.urllib 简介 urllib 是 Python3 中自带的 HTTP 请求库,无需复杂的安装过程即可正常使用,十分适合爬虫入门 urllib 中包含四个模块,分别是 request:请求处理模 ...
- 【tips】ORM - SQLAlchemy操作MySQL数据库
优先(官方文档SQLAlchemy-version1.2): sqlalchemy | 作者:斯芬克斯 推荐一(长篇幅version1.2.0b3):python约会之ORM-sqlalchemy | ...
- NLTK学习笔记(七):文本信息提取
目录 实体识别:分块技术 分块语法的构建 树状图 IOB标记 开发和评估分块器 命名实体识别和信息提取 如何构建一个系统,用于从非结构化的文本中提取结构化的信息和数据?哪些方法使用这类行为?哪些语料库 ...
- go 语言优势
一:为什么用Go来做抽奖系统 1.Go vs PHP/JAVA ①:高并发,Go协程优于PHP多进程,JAVA多线程模式 ②:高并发,编译后的二进制优于PHP解释型,JAVA虚拟机 3:高效网络模型 ...