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 ...
随机推荐
- 关于curl_setopt参数的记录
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE) 其中true输出执行结果,false为不输出 fsockopen与curl_setopt请求的区别之一就是 ...
- QM项目开发文档整理
QM项目开发文档整理 前言 在W公司工作4个多月,庆幸接触到的全是"硬"项目,真枪实干,技术.经验.能力都得到了很大提升. QM项目 此项目WEB前端学到的东西很多,对PHP项目的 ...
- vim 中Ctags的安装和使用
Ctags是一个用来为源文件中的标识符(如变量.函数.类成员.宏定义等)创建索引文件的程序.这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名 ...
- library cache: mutex X
我们先来看看 library cache: mutex X . 是个什么东西 The library cache mutex is acquired for similar purposes that ...
- 传智播客8月C/C++基础班开班
秋天已经向我们走来,在这个充满收获的季节里,大家齐聚传智C/C++学院这个大家庭,无论你曾经从事什么工作,都拥有着一颗热爱C/C++的心,为了自己心中的梦想,大家要付出百倍的努力,要做到&quo ...
- Linux开发工具的使用
1. Linux开发工具的使用 Vim编译的使用 Gdb调试工具的使用 Makefile的编写 linux跟踪调试 SSH的使用 subversion的使用 1. Linux开发工具的使用 V ...
- Delphi 把字符串读到流中的操作。
var FReQuestM := TMemoryStream FReQuestM.Write(PChar(FcVoucherXML)^, Length(FcVoucherXML)); 这样就读到流中了 ...
- windows oid 利用SNMP获得主机信息(转)
该博文转至:http://blog.sina.com.cn/s/blog_853cc55b0101a2mq.html Windows OID' for CPU, Memory, Disk Utiliz ...
- Java高级软件工程师面试考纲
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- DirectX Sample-Blobs实现原理
这个例子的实现主要包括两步: 1.计算三维采样坐标和color,实现代码是for( i = 0; i < NUM_Blobs; ++i )那个循环,计算完成以后g_pTexGBuffer[0]保 ...