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(); // 操作标签页中的元素
// }
// }
//});

ext4 grid edit 添加删除行的更多相关文章

  1. 超级简单的jquery操作表格(添加/删除行、添加/删除列)

    利用jquery给指定的table添加一行.删除一行 <script language="javascript" src="./jquery.js"> ...

  2. ASP.NET给Table动态添加删除行,并且得到控件的值

    ASP.NET给Table动态添加控件并且得到控件的值 由于跟老师做一个小的项目,可是我自己又不太懂js,所以一直为动态建立表格并且能动态的取值和赋值感到苦恼.起初在网上找到了一些js资源,解决了动态 ...

  3. 为11.2.0.2 Grid Infrastructure添加节点

    转自:http://www.askmaclean.com/archives/add-node-to-11-2-0-2-grid-infrastructure.html 在之前的文章中我介绍了为10g ...

  4. Grid中添加链接,打开选项卡页面

    如何在grid中点击,添加一个选项卡并打开页面        function addeditnew(id, title)         {                     var node ...

  5. 复杂表格的树形结构的添加删除行div实现

    公司倒闭,换了工作,无奈选择了做外包这个差事,大公司进不去,小公司工资太低,可能也只能如此了.但无奈之举,亦不可浪费时间,多多磨练自己吧! 众所周知,做外包项目,其实就是做一些大公司的内部系统,多以管 ...

  6. 【转】为Xcode添加删除行、复制行快捷键

    原文网址:http://www.jianshu.com/p/cc6e13365b7e 在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键.而恰巧Xcode不支持这两个快捷键,再一次的恰巧让 ...

  7. (转)为Xcode添加删除行、复制行快捷键

    转摘链接:http://www.jianshu.com/p/cc6e13365b7e 在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键.而恰巧Xcode不支持这两个快捷键,再一次的恰巧让 ...

  8. js动态添加删除行,兼容ie和火狐

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Extjs3.4 grid中添加一列复选框

    var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel( [ sm, new Ext.gri ...

随机推荐

  1. lazy loading img 图片延迟加载

    http://yunpan.cn/cVsjPW6dgbcsh (提取码:b5db)

  2. python学习第六天 条件判断和循环

    总归来讲,学过C语言的同学,对条件判断和循环并不陌生.这次随笔只是普及一下python的条件判断和循环对应的语法而已. 条件判断: 不多说,直接贴代码: age = 23 if age >= 6 ...

  3. Run Loops

    Run Loops Run loops是线程相关的的基础框架的一部分.一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件.使用run loop的目的是让你的线程在有工作的时 ...

  4. WCF-IIS-PDA

    PDA调用WCF 一 IIS托管WCF 项目从开始是用IIS托管的WCF,但一直出错,到最后也没有搞定,希望哪位大神知道的话可以指点. 错误如下: There was no endpoint list ...

  5. 【Xamarin 开发 IOS --IOS ViewController生命周期】

    ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内 ...

  6. ANDROID (eclipse)开发常见问题及解决办法汇总

    1.ANDROID 在eclipse中没有出现AVD的解决方法(转)如果android安装正确的话,但是eclipse里面的导航条就是没有AVD 可以通过「Window」⇒「Customize Per ...

  7. BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁

    2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 56  Solved: 16[S ...

  8. 简单拨号器(Android)

    感受: 1.了解了intent中的action和Uri. 2.了解了向下一个活动传递数据. 3.了解了内容提供器. 4.了解自定义适配器. 4.其实T9拨号器和简单计算器原理一样.

  9. Ajax--xml格式及注意事项

    <?xml version='1.0' ?>//整个标签必须顶格写,version='1.0'是xml的版本号 <Info>//只能有且只有一个根作为最外层标签 <n1& ...

  10. BeyondCompare两个文件中同一行字符长度不一致的文件对比,比如pi文件对比(xjl456852原创)

    假设有两个文件,里面存放的数字都只有一行,但长度不一样,对比时会有问题 示例文件: 对比示例如图: 左边的pi的字符串比较长,右边的比较短. 右边的pi的值不是从开始的第一个位置对比的,这样的情况是有 ...