extjs--grid动态添加一行和删除一行:
(1)选择rowEditing时,添加一行后的编辑方式为----startEdit(record,columnHeader)
(2)选择cellEditing时,添加一行后的编辑方式为----startEditByPosition(object position)
Ext.onReady( function() {
var store=Ext.create('Ext.data.Store', {
fields:['id','name','email','phone'],
data:[{
'id':"1",
'name':'one',
'email':'one@.com',
'phone':'123321123'
},{
'id':"2",
'name':'two',
'email':'two@.com',
'phone':'456654321'
},{
'id':"3",
'name':'there',
'email':'there@.com',
'phone':'789987321'
}]
});
(1)rowEditing:
var rowEditing=Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit:2,
cancelEdit: function(grid) {//添加一行数据时,如果没有点击update而是点击cancel,则此行数据不会加入到store中
var me = this;
if (me.editing) {
me.getEditor().cancelEdit();
var record=me.context.record;//包含属性如下:grid,record,field,value,row,column,rowIdx,colIdx,view,store
var id=record.data.id;
if(id==''){//id是由后台自动生成的,如果id不存在,则说明是通过页面的添加按钮直接添加的,还没有存入到后台数据库中,可以直接在页面删除
var grid=me.context.grid;
var items=grid.getSelectionModel().getSelection();
Ext.each(items,function(item){
store.remove(item);
})
}
}
},
listeners: {
edit: function(e) {
if(e.record.data.id){//id由后台自动生成,编辑时
//有id,则说明是更新数据库。
}else{
//无id,则说明是向数据库中插入一条记录
}
e.record.data.name;
e.record.data.email;
e.record.data.phone;
}
}
});
var grid=Ext.create('Ext.grid.Panel', {
title:'grid添加数据与删除数据',
width:400,
height:300,
store:store,
multiSelect: true,
bodyPadding:10,
renderTo:Ext.getBody(),
columns:[{
header:'姓名',
dataIndex:'name',
flex:1,
editor:'textfield'
},{
header:'邮箱',
dataIndex:'email',
flex:1,
editor:'textfield'
},{
header:'电话',
dataIndex:'phone',
editor:'textfield'
}],
selType:'rowmodel',
plugins:[rowEditing],
tbar:[{
text:'添加',
handler: function() {
var data=[{
'id':'',
'name':'testrow',
'email':'testrow@.com',
'phone':'123456'
}];
store.insert(0,data);//可以自定义在stroe的某个位置插入一行数据。
//store.loadData(data,true);//在store的最后添加一行数据
rowEditing.cancelEdit();
rowEditing.startEdit(0,0);
}
},'-',{
text:'删除',
handler:function(){
var records=grid.getSelectionModel().getSelection();
Ext.each(records,function(record){
//先通过ajax从后台删除数据,删除成功后再从页面删除数据
store.remove(record);
})
}
}]
});
})
(2)cellEditing
var cellEditing=Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit:2,
listeners: {
edit: function(editor,e) {
if(e.record.data.id) {//id由后台自动生成,编辑时
//有id,则说明是更新数据库。
} else {
//无id,则说明是向数据库中插入一条记录
}
e.record.data.name;
e.record.data.email;
e.record.data.phone;
}
}
});
var grid=Ext.create('Ext.grid.Panel', {
title:'grid添加一行数据与删除一行数据',
width:400,
height:300,
store:store,
bodyPadding:10,
renderTo:Ext.getBody(),
columns:[{
header:'姓名',
dataIndex:'name',
flex:1,
editor:'textfield'
},{
header:'邮箱',
dataIndex:'email',
flex:1,
editor:'textfield'
},{
header:'电话',
dataIndex:'phone',
editor:'textfield'
}],
selType:'cellmodel',
plugins:[cellEditing],
tbar:[{
text:'添加',
handler: function() {
var data=[{
'id':'',
'name':'testrow',
'email':'testrow@.com',
'phone':'123456'
}];
store.insert(0,data);//可以自定义在stroe的某个位置插入一行数据。
//store.loadData(data,true);//在store的最后添加一行数据
cellEditing.cancelEdit();
cellEditing.startEditByPosition({row:0,column:0});
}
},'-',{
text:'删除',
handler: function() {
var records=grid.getSelectionModel().getSelection();
Ext.each(records, function(record) {
//先通过ajax从后台删除数据,删除成功后再从页面删除数据
store.remove(record);
})
}
}]
});
//tabs2.on('tabchange', function (tabPanel, newCard, oldCard) {
// if (newCard.title == "Admin") {
// // 获得iframe的window对象
// var contentWnd = newCard.getEl().query('iframe')[0].contentWindow;
// // 如果是第一次加载,则window.Ext对象为undefined
// if (typeof contentWnd.Ext != 'undefined') {
// contentWnd.loadData(); // 操作标签页中的元素
// }
// }
//});
- 超级简单的jquery操作表格(添加/删除行、添加/删除列)
利用jquery给指定的table添加一行.删除一行 <script language="javascript" src="./jquery.js"> ...
- ASP.NET给Table动态添加删除行,并且得到控件的值
ASP.NET给Table动态添加控件并且得到控件的值 由于跟老师做一个小的项目,可是我自己又不太懂js,所以一直为动态建立表格并且能动态的取值和赋值感到苦恼.起初在网上找到了一些js资源,解决了动态 ...
- 为11.2.0.2 Grid Infrastructure添加节点
转自:http://www.askmaclean.com/archives/add-node-to-11-2-0-2-grid-infrastructure.html 在之前的文章中我介绍了为10g ...
- Grid中添加链接,打开选项卡页面
如何在grid中点击,添加一个选项卡并打开页面 function addeditnew(id, title) { var node ...
- 复杂表格的树形结构的添加删除行div实现
公司倒闭,换了工作,无奈选择了做外包这个差事,大公司进不去,小公司工资太低,可能也只能如此了.但无奈之举,亦不可浪费时间,多多磨练自己吧! 众所周知,做外包项目,其实就是做一些大公司的内部系统,多以管 ...
- 【转】为Xcode添加删除行、复制行快捷键
原文网址:http://www.jianshu.com/p/cc6e13365b7e 在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键.而恰巧Xcode不支持这两个快捷键,再一次的恰巧让 ...
- (转)为Xcode添加删除行、复制行快捷键
转摘链接:http://www.jianshu.com/p/cc6e13365b7e 在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键.而恰巧Xcode不支持这两个快捷键,再一次的恰巧让 ...
- js动态添加删除行,兼容ie和火狐
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Extjs3.4 grid中添加一列复选框
var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel( [ sm, new Ext.gri ...
随机推荐
- Selenium2Library关键字
对Selenium2Library关键字的整理和翻译.英文不好,仅供参考. 1.Add Cookie [ name | value | path=None | domain=None | secure ...
- IOS 播放音频流媒体
#pragma mark - 加载播放数据 - (void)loadData:(NSString *)musicUrl { NSURL *playURL = [NSURL URLWithString: ...
- Eclipse formater(google Java 编码规范)
1. 谷歌Java编码规范 http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 2. 下载配置文件: https://co ...
- JSP(一)
一.JSP概要 一]JSP的概念 1>JSP是SUN公司开发的一个基于服务端的一种动态WEB开发技术. 2>JSP的代码结构/内容 = HTML内容+JSP特有元素内容 ...
- wireshark抓一抓,看是不是另一个机器也企图DHCP
早上的问题,昨晚四点睡,今早九点半起... 到公司处理此问题,不知道相关性大不大..
- 解决Jenkins上git出现Timeout的问题
Jenkins上现有的git插件并没有配置超时的选项,因此在clone项目时如果网络差会出现“ERROR: Timeout after 10 minutes”,导致无法继续构建. 网上找到一个解决方法 ...
- Android Studio:Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs for details
Gradle 编译错误: 14:39:58 Executing tasks: [clean, :app:generateDebugSources, :app:mockableAndroidJar, : ...
- 论 <%@taglib prefix="s" uri="/struts-tags" %> 的重要性
前段时间在做项目的时候,碰到这个问题 结果是相应的内容显示不出来,原来是忘了这句很关键的引入:<%@taglib prefix="s" uri="/struts-t ...
- javascript:DOM自定义属性的妙用
虽然HTML元素的属性已经十分丰富,但在某些场合下,元素固有的属性无法完成我们的需求: 这个时候,自定义属性就会让问题解决起来比较方便. 比如,下面的栗子: 多张图片点击变化事件:当背景图片为a.jp ...
- ffmpeg + sdl -03 简单音频播放器实现
没办法,工作中遇到了问题. 目前NEC EMMA的架构如下: 从USB读入文件 -> 文件分析并提取Packet中的Payload Data -> NEC HANDLE AVTrans ...