`
refurbish
  • 浏览: 27856 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

LearningExtJS_new 之 EDIT GRID的应用学习(四)

阅读更多
Ext.onReady(function(){
	//使用EditGrid
//	1.开始使用使用editGrid
//	1>把原来的Ext.grid.gridPanel修改成Ext.grid.editorGridPanel
//	2>在grid中增加clicksToEdit参数,使其可编缉,不指定则默认为2.双击两次
//	3>定义form域中的组件进行编缉,如TextField
//	4>在grid的columns中定义上步定义好的form域的组件.
//	2.编缉更多的类型
//	1>时间 DateField
//	2>下拉框 ComboBox
//	3.脏数据的处理方法
//	1>使用afterEdit方法中参数 e.对于e的参数可以是field,value,grid,row,orignalValue,record,column
//	2>使用e.record.commit()和e.record.reject()分别用来提交和拒绝数据,提交后把数据写入缓存中.
//	4.缓存中数据的增加,修除方法.
//	1>增加数据,定义数据类型 record.create定义数据类型,grid.getStore().insert增加数据,grid.startEidt开如编缉处
//	2>删除数据 grid.getStore().remove(sl)删除选中数据
//	5.服务端操作数据
//	1>对数据的增加,删除,修改操作,都可以用new Ext.data.Connection(); 类来与后台数据交互
//	2>与前台操作数据相同,不同的只是在操作时,把后台要操作的数据传到后台数据操作.
//	3>返回success,与failture对成功与失败返回操作

	//定义数据库
	var store =  new Ext.data.Store({
				//定义数据 data
				data:[[
							"de.png",
							1,
							"Office Space",
							"Mike Judge",
							"1999-02-19",
							1,
							"Work Sucks",
							"19.95",
							1
						],[
							"us.png",
							3,
							"Super Troopers",
							"Jay Chandrasekhar",
							"2002-02-15",
							2,
							"Altered State Police",
							"14.95",
							2
						]
				],
				reader:new Ext.data.ArrayReader({
													id:"id"
													
												},[
													'image',
													'id',
													'title',
													'director',
													{name: 'released', type: 'date', dateFormat: 'Y-m-d'},
													'genre',
													'tagline',
													'price',
													'available'
												]
					)
			});
	//定义form中组件,设置导演,标题,说明
	var txtDirector = new Ext.form.TextField();
	var txtTitle = new Ext.form.TextField();
	var txtTagLine = new Ext.form.TextField({maxLength:45});
	//发布日期
	var dtReleased = new Ext.form.DateField({format:"m/d/y"});
	//下拉框类型
	var localData = [["1","喜剧"],["2","歌剧"],["3","动作片"]];
	var localStore = new Ext.data.SimpleStore({
						data:localData,
						fields:["id","type"]
					});
	//类型
	var cbGenre = new Ext.form.ComboBox({
					store:localStore,
					typeAhead:true,
					mode:"local",
					displayField:'type',
					valueField:"id",
					triggerAction:"all"
				});
				
	//定义数据类型
//													'image',
//													'id',
//													'title',
//													'director',
//													{name: 'released', type: 'date', dateFormat: 'Y-m-d'},
//													'genre',
//													'tagline',
//													'price',
//													'available'

	//定义编缉器
	var editGrid = new Ext.grid.EditorGridPanel({
						title:"电影编缉",
						frame:true,
						width:600,
						height:400,
						renderTo:document.body,
						clickstoEdit:2,
						store:store,
						sm:new Ext.grid.RowSelectionModel({
								singleSelect:true
							}),
						columns:[{
										header:"title",
										dataIndex:"title",
										editor:txtTitle
									},{
										header:"director",
										dataIndex:"director",
										editor:txtDirector
									},{
										header:"released",
										dataIndex:"released",
										renderer:Ext.util.Format.dateRenderer("m/d/y"),
										editor:dtReleased
									},{
										header:"genre",
										dataIndex:"genre",
										renderer:function(val){
													return localStore.queryBy(function(rec){
																					return rec.get("id") == val
																				},this).itemAt(0).get("type");
												},
										editor:cbGenre
									},{
										header:"tagline",
										dataIndex:"tagline",
										editor:txtTagLine
									}
								],
						listeners:{
									afterEdit:function(e){
										//e.field && e.value 取当前的值
										if(e.field == "director" && e.value == "refurbish"){
											Ext.Msg.alert("refurbish is fobidden","被禁止");
											e.record.reject();
										}else{
											//e.record.commit();
										}
										
										//edit grid on server
										testGrid.updateFromServer(e);
									}
								},
						tbar:[
								{
									text:"增加电影",
									icon:"image/table_add.png",
									cls:"x-btn-txt-icon",
									handler:function(){
										//创建值
										editGrid.getStore().insert(0,movieRec);
										//初始编缉
										editGrid.startEditing(0,0);
									}
									
								},{
									text:"增加电影(后面)",									
									icon:"image/table_add.png",
									cls:"x-btn-txt-icon",
									handler:function(){
										editGrid.getStore().insert(editGrid.getStore().getCount(),movieRec);
										editGrid.startEditing(editGrid.getStore().getCount() -1,0);
									}
								},{
									text:"删除电影",
									icon:"table_delete.png",
									cls:"x-btn-txt-icon",
									handler:function(){
										var sm = editGrid.getSelectionModel();
										var sl = sm.getSelected();
										if(sm.hasSelection()){
											Ext.Msg.show({
															title:"do you want to delete",
															buttons:Ext.Msg.YESNOCANCEL,
															msg:"你要删除" + sl.get("title") + "数据吗?",
															fn:function(btn){
																if(btn == "yes"){
																	editGrid.getStore().remove(sl);
																}
															}
														});
										}
									}
								}
							],
						bbar:[{
									text:"增加电影(Server)",
									handler:function(){
										testGrid.insertFromServer(editGrid);
									}
								},{
									text:"删除电影(Server)",
									handler:function(){
										var sm = editGrid.getSelectionModel();
										var sel = sm.getSelected();
										if(sm.hasSelection()){
											Ext.Msg.show({
															title:"do you want to delete",
															buttons:Ext.Msg.YESNOCANCEL,
															msg:"你要删除" + sel.get("title") + "数据吗?",
															fn:function(btn){
																if(btn == "yes"){
																	testGrid.deleteFromServer(editGrid,sel);
																}
															}
														});
										}
									}
								}
							
						]
							
					});
});


var movieRecord = new Ext.data.Record.create([{
											name:"image",
											type:"string"
										},{
											name:"id",
											type:"string"
										},{
											name:"title",
											type:"string"
										},{
											name:"director",
											type:"string"
										},{
											name:"name",
											type:"string"
										},{
											name:"genre",
											type:"int"
										},{
											name:"tagline",
											type:"string"
										},{
											name:"price",
											type:"int"
										},{
											name:"available",
											type:"int"
										} 
									 ]);
//定义类型
var movieRec = new movieRecord({
					title:"test",
					director:"12",
					genre:"1"
				});
var testGrid = function(){
	var _conn = new Ext.data.Connection();
	var _url = "../saleInfo.do?method=operateMovieInfo";
	return {
		updateFromServer:function(e){
			_conn.request({
							url: _url,
							params:{
								action:"update",
								id:e.record.id,
								field:e.field,
								value:e.value
							},
							success:function(){
								e.record.commit();
							},
							failure:function(){
								e.record.reject();
							}
						});
		},
		deleteFromServer:function(grid,sel){
			_conn.request({
							url:_url,
							params:{
								action:"delete",
								id:sel.get("id")
							},
							success:function(){
								grid.getStore().remove(sel)
							},
							failure:function(resp,opt){
								Ext.Msg.alert("更新提示","更新数据" + e.record.id + "失败!");
							}
						});
		},
		insertFromServer:function(grid){
			_conn.request({
							url:_url,
							params:{
								action:"insert",
								title:"test"
							},
							success:function(){
								grid.getStore().insert(0,movieRec);
								grid.startEditing(0,0);
							},
							failure:function(){
								Ext.Msg.alert("保存提示","保存数据失败!")
							}
						});
		}
	}
}();
分享到:
评论

相关推荐

    ALV EDIT_MASK字段的使用.rar_ABAP EDIT_MASK_ALV EDIT_MASK字段的使用_ALVEDIT

    这通常通过在`CALL REPORT`或`CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'`等语句中使用`SET_EDIT_MASK`方法来实现。例如: ``` DATA: ls_edit_mask TYPE lvc_s_fdef, lv_fieldname LIKE LINE OF it_fieldname. ls...

    state_system_edit.rar_DFIG stability_New Power_dfig_stability

    标题中的“state_system_edit.rar_DFIG stability_New Power_dfig_stability”揭示了这个压缩包文件主要涉及的内容。这里的关键术语包括“DFIG”,“stability”以及“New Power”。这表明压缩包内可能包含了一个...

    Screenshot_20220312_023756_edit_82386531772294.jpg

    Screenshot_20220312_023756_edit_82386531772294.jpg

    Edit_Text.rar_Edit自绘_c++ edit_edit_edit 自绘_visual c

    标题中的"Edit_Text.rar_Edit自绘_c++ edit_edit_edit 自绘_visual c"表明这是一个关于C++编程语言在Visual C++环境中实现自定义编辑框(Edit)控件绘图的教程或资源包。自绘(Custom Drawing)是Windows编程中一个...

    REUSE_ALV_GRID_DISPLAY超详细讲解

    REUSE_ALV_GRID_DISPLAY超详细讲解 REUSE_ALV_GRID_DISPLAY是一个功能强大的ABAP函数模块,主要用于在ABAP程序中显示ALV网格控件。该函数模块提供了大量的参数和事件,使得开发者可以根据需要自定义ALV网格控件的...

    P_edit.rar_P_Edit.asp_P_edit_P_edit.a_p_ed_考试系统asp

    本文将深入探讨一款名为“鼎峰考试系统”的ASP(Active Server Pages)应用程序,特别是其试题编辑模块——P_Edit。这个模块是针对原有鼎峰考试系统的功能扩展,旨在解决系统中可能存在的不足之处。 ASP是一种...

    API-edit.rar_api Edit_edit_edit api

    《API Edit:深入理解编辑框程序的开发与API应用》 在编程的世界里,API(Application Programming Interface)扮演着至关重要的角色,它是一系列预先定义的函数,允许开发者使用特定的功能或服务。在这个名为"API ...

    test_access_rot_edit2.zip_Code Name

    【test_access_rot_edit2.zip_Code Name】是一个包含VHDL代码的压缩文件,主要用于实现SRAM(静态随机访问存储器)的访问控制。这个项目在Altera公司的Cyclone II系列器件上运行,并且是在Quartus 8.1 Web Edition...

    atl_edit.rar_ATL_activex atl edit de_atl richedit_atl edit

    这个“atl_edit.rar”压缩包文件显然包含了关于ATL中用于创建编辑控件(Edit Control)的示例代码,让我们深入探讨一下这个主题。 ATL是一个轻量级的库,它的设计目标是提供一种更有效率的方式来创建COM对象,相比...

    color_edit.rar_EDIT B_color edit_edit_编辑框_语法编辑

    "color_edit.rar_EDIT B_color edit_edit_编辑框_语法编辑" 这个压缩包文件主要涉及的是一个名为 "color_edit" 的编辑工具,它具备独特的颜色区分和语法高亮功能,使得用户在编辑代码或者文本时能有更直观、更高效的...

    IMG_20211117_211929_edit_1213744130186190.jpg

    IMG_20211117_211929_edit_1213744130186190.jpg

    ceshi.rar_richedit_richedit Visual C++_richedit 打印_打印 RichEdit_打

    在IT领域,尤其是在Windows应用程序开发中,`RichEdit`控件是一个非常常用的功能强大的文本编辑组件。`RichEdit`不仅支持基本的文本编辑,还提供了丰富的格式化功能,如字体、颜色、对齐方式等。这个`ceshi.rar`...

    e_num_edit.rar_visual c

    标题 "e_num_edit.rar_visual c" 暗示我们正在讨论一个使用Visual C++开发的压缩包,其中可能包含一个名为 "E_NUM_EDIT" 的工程或库,专门用于处理指数形式的数字输入和数据值的获取。Visual C++是Microsoft提供的一...

    RichEdit2RTF_将RichEdit的内容存入RTF文件_

    在IT行业中,富文本编辑器(RichEdit)是一种常见的用于创建和编辑富格式文本的控件,它支持多种样式和格式,如字体、颜色、段落样式等。RTF(Rich Text Format)则是微软开发的一种文件格式,用来跨平台保存和交换...

    text_edit.rar_Text_Edit

    《控制台文本编辑器——Text_...通过研究源码,我们可以学习到控制台应用的开发技术;通过深入使用,我们可以挖掘出更多的使用技巧,提升工作效率。同时,我们也可以从中汲取灵感,为自己的项目带来新的改进和创新。

    listview-Edit.zip_ListView_edit listview_listview edit_listviewe

    "listview-Edit.zip_ListView_edit_listview_listview edit_listviewe"这个压缩包就包含了关于ListView功能扩展,特别是实现自定义特定列编辑的相关知识。 首先,我们要理解ListView的基本结构。ListView通常结合...

    color_edit.zip_color edit_color_edit.zip_visual c

    【标题】"color_edit.zip_color edit_color_edit.zip_visual c" 提供的是一个关于颜色编辑功能的软件开发项目,其中涉及到的编程语言很可能是C++,因为标签中提到了"visual_c",这通常指的是Microsoft的Visual C++...

    Web Edit.rar_Edit网页_c web edit 输入_mathjax web ed_web edit_网页 vc

    "web edit_网页 vc"进一步确认了该编辑器与Visual C++(VC)有关,可能使用了VC作为开发环境。 描述中提到,这是一个"所见即所得"(WYSIWYG)的网页编辑程序,这意味着用户可以在编辑器中直接看到网页的视觉效果,...

    TAP3编辑工具Digitel_TAP3Edit_V3.11.08_Setup.zip

    安装过程中,用户会遇到的文件有“TAP3Edit_Setup_V3.11.08_Prod.msi”,这是一个标准的Windows安装程序,负责将Digitel TAP3Edit的全部组件部署到用户的计算机上。同时,随包提供的“readme.txt”文件通常包含了...

    IMG_20240326_170430_edit_54143440562886.jpg

    IMG_20240326_170430_edit_54143440562886.jpg

Global site tag (gtag.js) - Google Analytics