Extjs EditorGridPanel 动态追加一行

本文介绍了一个使用ExtJS框架实现的grid编辑事件案例。该案例通过监听grid的edit事件,在用户完成编辑后检查最后一个记录是否为空。如果不为空,则向数据存储中添加一个新的空记录,以便用户继续编辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是实现grid的edit事件,查看Ext.data.StoreManager.lookup("gridStore")

找到store之后,查看最后一个recorde是否为空,不为空才新增一行

Ext.onReady(function(){
	Ext.QuickTips.init();  
	Ext.form.Field.prototype.msgTarget='side';
	var store=Ext.create('Ext.data.Store',{
		storeId:'gridStore',
		autoLoad:true,
	    fields:['Name','Password','RPassword','Email'],
	    data:{'items':[
	         {'Name':'','Password':'','RPassword':'','Email':''},  	
	    ]},
	    proxy:{
	       type:'memory',
	       reader:{
	          type:'json',
	          root:'items'
	       }
	    }
		
	});	
	var gridPanel=Ext.create('Ext.grid.Panel',{
		autoScroll:true,
		height:110,
	    store:store,
	    plugins:[
	       Ext.create('Ext.grid.plugin.CellEditing',{
	            clicksToEdit:1
	       })
	    ],
	    columns:[
	      {header:'用户名',dataIndex:'Name',flex:1,
	         editor:{
	            xtype:'textfield',
	            name:'username',
	            allowBlank:false,
	            blankText:'用户名不能为空'
	         }
	      },
	      {header:'密码',dataIndex:'Password',flex:1,
	         editor:{
	            xtype:'textfield',
	            name:'password1',
	            id:'password1',
	            allowBlank:false,
	            inputType:'password',
	            blankText:'密码不能为空'
	         }
	      },
	      {header:'确认密码',dataIndex:'RPassword',flex:1,
	         editor:{
	            xtype:'textfield',
	            name:'password2',
	            allowBlank:false,
	            inputType:'password'
	         }
	      },
	      {header:'邮箱',dataIndex:'Email',flex:1,
	         editor:{
	            xtype:'textfield',
	            name:'email',
	            allowBlank:false,
	            vtype:'email',
	            vtypeText:'邮箱格式不正确!'
	         }
	      },
	    ],
	    listeners:{
		   edit:function(editor,eOptions){
		      var store=Ext.data.StoreManager.lookup("gridStore");
		      var lastRecord=store.last();
		      var temp=lastRecord.get('Name')+lastRecord.get('Password')
		              +lastRecord.get('RPassword')+lastRecord.get('Email');
		      temp=Ext.util.Format.trim(temp);
		      if(temp!=""){
			      var newRecord={'Name':'','Password':'','RPassword':'','Email':''};
			      store.add(newRecord);
		      }
		     
	       }
		
	    }
	    
		
	});
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值