ext_EditorGridPanel (8)

EditorGridPanel

ExtJS 中的可编辑表格由类Ext.grid.EditorGridPanel 表示,xtype 为editorgrid,和gridPanel的区别就是,这个表格中的内容是可编辑的

 

Ext.onReady(function(){

	var data=[

		{id:1,name:'小王',email:'[email protected]',sex:'男',bornDate:'1991-4-4'},

		{id:1,name:'小李',email:'[email protected]',sex:'男',bornDate:'1992-5-6'},

		{id:1,name:'小兰',email:'[email protected]',sex:'女',bornDate:'1993-3-7'}

	];

	var store=new Ext.data.JsonStore({

		data:data,

		fields:["id","name","sex","email",{name:"bornDate",type:"date",dateFormat:"Y-n-j"}]

	});

	var colM=new Ext.grid.ColumnModel([

		{header:"姓名",dataIndex:"name",sortable:true,editor:new Ext.form.TextField()},

		{header:"性别",dataIndex:"sex"},

		{header:"出生日期",dataIndex:"bornDate",width:120,renderer:Ext.util.Format.dateRenderer('Y年m月d日')},

		{header:"电子邮件",dataIndex:"email",sortable:true,editor:new Ext.form.TextField()}

	]);

	var grid = new Ext.grid.EditorGridPanel({

		renderTo:"hello",

		title:"学生基本信息管理",

		height:200,

		width:600,

		cm:colM,

		store:store,

		autoExpandColumn:3

	});

});

 

为了能编辑“性别”及“出生日期”列,同样只需要在定义该列的时候指定editor 即可。由于出生日期是日期类型,因此我们可以使用日期编辑器来编辑,“性别”一列的数据不应该让

用户直接输入,而应该是通过下拉框进行选择。日期编辑器可以直接使用Ext.form.DateField组件,下拉选择框编辑器可以使用Ext.form.ComboBox 组件,下面是实现对性别及

出生日期等列信息编辑的代码:

 

Ext.onReady(function(){

	var data=[

		{id:1,name:'小王',email:'[email protected]',sex:'男',bornDate:'1991-4-4'},

		{id:1,name:'小李',email:'[email protected]',sex:'男',bornDate:'1992-5-6'},

		{id:1,name:'小兰',email:'[email protected]',sex:'女',bornDate:'1993-3-7'}

	];

	var store=new Ext.data.JsonStore({

		data:data,

		fields:["id","name","sex","email",{name:"bornDate",type:"date",dateFormat:"Y-n-j"}]

	});

	var colM=new Ext.grid.ColumnModel([

		{header:"姓名",dataIndex:"name",sortable:true,editor:new Ext.form.TextField()},

		{header:"性别",dataIndex:"sex",

			editor:new Ext.form.ComboBox({transform:"sexList",triggerAction: 'all',lazyRender:true})},

		{header:"出生日期",dataIndex:"bornDate",width:120,

			renderer:Ext.util.Format.dateRenderer('Y年m月d日'),

			editor:new Ext.form.DateField({format:'Y年m月d日'})},

		{header:"电子邮件",dataIndex:"email",sortable:true,editor:new Ext.form.TextField()}

	]);

	var grid = new Ext.grid.EditorGridPanel({

		renderTo:"hello",

		title:"学生基本信息管理",

		height:200,

		width:600,

		cm:colM,

		store:store,

		autoExpandColumn:3,

		clicksToEdit:1

	});	

});

注意在定义EditorGridPanel 的时候,我们增加了一个属性“clicksToEdit:1”,表示点击一次单元格即触发编辑,因为默认情况下该值为2,需要双击单元格才能编辑。为了给
ComboBox 中填充数据,我们使用设置了该组件的transform 配置属性值为sexList,sexList是一个传统的<select>框,我们需要在html 页面中直接定义,代码如下:

 

 

 <select id="sexList" name="sexList">

<option>男</option>

<option>女</option>

</select>

 


 

ComboBox的其他重要参数

1.valueField:"valuefield"//value值字段
2.displayField:"field" //显示文本字段
3.editable:false//false则不可编辑,默认为true
4.triggerAction:"all"//请设置为"all",否则默认为"query"的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为"all"的话,每次下拉均显示全部选项
5.hiddenName:string //真正提交时此combo的name,请一定要注意
6.typeAhead:true,//延时查询,与下面的参数配合
7.typeAheadDelay:3000,//默认250


























你可能感兴趣的:(gridPanel)