`
我奋斗
  • 浏览: 4665 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

自己写的一段EXTJS代码

    博客分类:
  • Ext
阅读更多
贴一段自己写的代码。sorry,没有解释,有空再说吧。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script type="text/javascript">
  	var assign=function(value){			
				MainPanel=Ext.getCmp('MainPanel');
  				var n=MainPanel.getComponent("assignCostcenter");  						
  				if(!n){
  						var n = MainPanel.add({
								id :"assignCostcenter",
								title :"为用户分配Cost Center",
								closable :true,														
								autoLoad : {
									url :'/OA2/profplan/assigncostcenter!index.action',
									scripts :true,
									scope :this,
									params :{
										userid:value
									},
									nocache: true,
									callback: function(response,success ){							
											},
									text: "正在加载<font color='red'>【分配Cost Center】</font>页面.........请稍后!"
								}
							});
  				 }else{
  				 	n.getUpdater().update({
  										url :'/OA2/profplan/assigncostcenter!index.action',
  										params :{
											userid:value
										},
										nocache: true,
										text: "正在加载<font color='red'>【分配Cost Center】</font>页面.........请稍后!"
  									});
  				 }
				MainPanel.setActiveTab(n);
		};
  	Ext.onReady(function(){		
  		Ext.BLANK_IMAGE_URL = '../../../Ajax/extjs/resources/images/default/s.gif';
  		Ext.QuickTips.init(); 
  		var changeStatus=function(value){
					if(value==1){
						return "<span style='color:green;font-weight:bold;'>激活</span>";
					}else{
						return "<span style='color:red;font-weight:bold;'>禁止</span>";
					};
				};	
		var assignCostCenter=function(value){
				return '<a href="#" style="text-decoration:none;" onclick="assign('+value+')">'+'分配Cost Center'+'</a>';
		};		
  		var height=Ext.get('MainPanel').getHeight();		
  		var sm = new Ext.grid.CheckboxSelectionModel({}); 		
  		var cm = new Ext.grid.ColumnModel([  		
  			new Ext.grid.RowNumberer(),//自动行号
   				 			sm,//添加的地方
		    {header:'用户名',dataIndex:'username'},
		    {header:'英文名',dataIndex:'ename'},
		    {header:'部门',dataIndex:'dept'},
		    {header:'账号状态',dataIndex:'status',renderer:changeStatus},
		    {header:'分配Cost Center',dataIndex:'id',renderer:assignCostCenter}
			]);
			cm.defaultSortable = true;					
			sm.on("selectionchange",function(sm){ //控制toolbar的状态					
					var count=sm.getCount();								
					if(count==1){
						grid.getTopToolbar().items.item(2).enable();//删除
						grid.getTopToolbar().items.item(4).enable();//修改
					}else if(count>=2){
						grid.getTopToolbar().items.item(2).enable();
						grid.getTopToolbar().items.item(4).disable();
					}else if(count==0){
						grid.getTopToolbar().items.item(2).disable();
						grid.getTopToolbar().items.item(4).disable();
					};
			});
			var store = new Ext.data.Store({
					    proxy: new Ext.data.HttpProxy({   
					        method: 'GET',   
					        url: '/OA2/profplan/profuser!getProfUser.action'  
					    }),   
					    reader: new Ext.data.JsonReader({ 
					             totalProperty:"totalProperty",
					             root:"root",
					             fields:['id','sysuerid','dept','username','ename','status']
					         })
 
				});    
			store.load({params:{start:0,limit:20}});			
            var pagingBar = new Ext.PagingToolbar
            ({
            		pageSize: 20, 
					store: store, 
                   	autoScroll:true, 
					displayInfo : true, 
					beforePageText : '第', 
					afterPageText : '页共 {0} 页', 
					displayMsg : '显示 {0} - {1},共 {2} 条', 
					emptyMsg : '没有数据需要显示'
            });
			var grid = new Ext.grid.GridPanel({
					title:'用户信息表',
				    renderTo: 'profuser',
				    ds: store,
				    cm: cm,
				    sm:sm,
				    tbar:[{
					    	text:'添加新用户',
					    	listeners:{
					    		'click':function(){
					    			User_CURD.addUser("");
					    		},
					    		scope:this
					    	}
				    	},'-',{
					    	text:'编辑用户',
					    	width:12,
					    	disabled:true,
					    	handler:function(){
					    			var data=grid.getSelectionModel().getSelected();					    			
					    			User_CURD.addUser(data);
					    	}
				    	},'-',{
				    	text:'删除用户',
				    	width:12,
				    	disabled:true,
				    	handler:function(){				    				
				    				Ext.Msg.confirm('提示','真的要删除该用户吗?',function(btn){
				    						if(btn=='yes'){
				    								var data=grid.getSelectionModel().getSelections();								
													if(data.length>1){
															var info="这"+data.length+"条";
													}else{								
															var info="用户名为:"+data[0].get('username')+"的";
													}
													var id="";
													for(var i=0;i<data.length;i++){
														id+=data[i].get('id')+',';
													}								
													Ext.Msg.confirm('提示','<font color="red">确定要删除'+info+'记录吗?警告:同时会删除与之相关的数据</font>',function(bt){
														 	if(bt=='yes'){
														 			Ext.Ajax.request({
																		url:'/OA2/profplan/profuser!delProfUser.action',
																		method:'Post',
																		params:{
																				id:id
																			},
																		success:function(o){profUserNew.successFn(o,'','')},
																		failure:function(o){profUserNew.successFn(o)}
																});
														 	}
													})
				    						}
				    					
				    				});
				    		}
				    	},'-','按姓名搜索:',new Ext.form.ComboBox({store:store,typeAhead:true,triggerAction:'all',mode:'local',displayField :'username'})],
				    height:height-35,
					autoScroll :true,
				    region:'center',				    		    			  
				 	layout:"fit",
				 	margins:'0 0 0 0',                   
				    autoWidth : true,                         
                    bbar:pagingBar 
				});
	//以下是对增删改成用户
		var ClearUserWind=function(grid,yes){//清除user_Wind数据
					if(yes){
						grid.ownerCt.findByType("textfield")[0].setValue('');	
						}				
						grid.ownerCt.findByType("textfield")[1].setValue('');
						grid.ownerCt.findByType("textfield")[2].setValue('');
		};
		  var User_CURD=function(){		  		
	  	  		return{
	  	  			addUser:function(data){
					 var user_Wind=new Ext.Window({ //创建一个window
				  	  				title:data==""?'添加新用户':'编辑用户',
				  	  				width:440,
				  	  				height:200,
				  	  				frame:true,
				  	  				buttonAlign:'center',
				  	  				modal:true,
				  	  				layout:'form',
				  	  				id:data==""?new Date().getSeconds():data.get('id'),
				  	  				plain:true,
				  	  				bodyStyle:{padding:'5px,5px,5px,5px'},
				  	  				buttons :[{
				  	  					text:'保存',
				  	  					handler:function(){				  	  
				  	  								var par;
				  	  								var win=this.ownerCt;
				  	  								var grid=this.ownerCt.findByType("grid")[0];	  	  								
				  	  								if(!grid){				  	  									
				  	  									 par="{'id':this.ownerCt.findByType('hidden')[0].getValue(),"+
														   	" 	'sysuerid':this.ownerCt.findByType('hidden')[1].getValue(),"+
														   	"   'dept':this.ownerCt.findByType('textfield')[2].getValue(),"+
														   	"   'username':this.ownerCt.findByType('textfield')[0].getValue(),"+
														   	"   'ename':this.ownerCt.findByType('textfield')[1].getValue(),"+
														   	"	'status':this.ownerCt.findByType('combo')[0].getValue() }";
				  	  									}else{
				  	  									 var data=grid.getSelectionModel().getSelected() ;
				  	  									 if(grid.getSelectionModel().getCount()<=0){
				  	  									 	Ext.Msg.alert("提示","请选择你要添加的用户!");
				  	  									 	return ;
				  	  									 }				  	  									
			  	  										 par="{'id':'',"+
														   	" 	'sysuerid':data.get('id'),"+
														   	"   'dept':data.get('dept'),"+
														   	"   'username':data.get('name'),"+
														   	"   'ename':data.get('ename'),"+
														   	"	'status':this.ownerCt.findByType('combo')[0].getValue()  }";
				  	  									}
				  	  								Ext.Ajax.request({
																	   url: '/OA2/profplan/profuser!saveProfUser.action',
																	   method:'Post',																	  
																	   params: eval('(' + par +')'),
																	   success: function(o){profUserNew.successFn(o,win,'')},
																	   failure: function(o){profUserNew.failedFn(o,'','')}																	   
																	});
				  	  						}
				  	  					},{
				  	  					text:'取消',
				  	  					handler:function(){
				  	  						this.ownerCt.close();
				  	  					}
				  	  					}],	
				  	  					defaults:[{labelWidth:20}],
				  	  					items:[{
				  	  							layout:'column',
				  	  							baseCls:'x-plain',
				  	  							items:[{
				  	  									columnWidth:.7,
				  	  									layout:'form',
				  	  									baseCls:'x-plain',			  	  									 	  									
				  	  									items:[{
				  	  										xtype:'textfield',				  	  										
				  	  										width:180,
				  	  										name:'EmpInfo',
				  	  										fieldLabel:'用户姓名',
				  	  										readOnly:data!="",
				  	  										value:data!=""?data.get("username"):data,
				  	  										allowBlank:false
				  	  									}]
				  	  								},{
				  	  									columnWidth:.3,
				  	  									layout:'form',
				  	  									baseCls:'x-plain',
				  	  									items:[{
				  	  										xtype:'button',
				  	  										text:'搜素',			  	  										  	  										
				  	  										width:14,	
				  	  										disabled:data==""?false:true,			  	  										
				  	  										handler:function(){	
				  	  												var win=this.ownerCt.ownerCt.ownerCt;
				  	  												ProfUserGrid(win);
				  	  										}
				  	  									}]				  	  									
				  	  								}]
				  	  						},{
				  	  							layout:'form',
				  	  							baseCls:'x-plain',				  	  						
				  	  							items:[new Ext.form.Hidden({name:'id',value:data!=""?data.get("id"):''}),
				  	  								new Ext.form.Hidden({name:'sysuerid',value:data!=""?data.get("sysuerid"):''}),{
					  	  							fieldLabel:'英文名',readOnly:true,name:'ename',xtype:'textfield',
					  	  							value:data!=""?data.get("ename"):data,width:240
					  	  						},{
					  	  							fieldLabel:'部门',readOnly:true,	name:'dept',xtype:'textfield',
					  	  							value:data!=""?data.get("dept"):data,width:240					  	  							
					  	  						},{
					  	  							fieldLabel:'账号状态',xtype:'combo',width:240,
					  	  							mode:'local',name:'activity',readOnly:true,
					  	  							triggerAction:'all',typeAhead:true,forceSelection:true,
					  	  							valueField:'value',displayField:'activity',
					  	  							value:data!=""?data.get("status"):"1",
					  	  							store:new Ext.data.SimpleStore({
					  	  											data:[['激活',1],['禁止',0]],
					  	  											fields:['activity','value']
					  	  										})					  	  							
					  	  						}]				  	  						
				  	  						}]
				  	  			
				  	  			}).show();			
				  	 var ProfUserGrid=function(win){
				  	 		var wait=Ext.Msg.wait('请稍后','正在帮您搜索!','');				  	  													  	  												  	  											  	  											
  								var username=win.findByType('textfield')[0].getValue();
							  			if(username==""){
							  				Ext.Msg.alert("服务器提示","请输入员工姓名后再搜索!");
							  				return false;
							  			}
							  		var grid=win.findByType("grid")[0];														  		
							  		if(!grid){//如果grid不存在														  		
							  			var ds=new Ext.data.Store({
												    	//autoLoad:true,
												    	proxy: new Ext.data.HttpProxy({
												        	method: 'GET',											        	
												       		url:encodeURI('/OA2/profplan/profuser!searchUser.action?username='+username)}),
															reader: new Ext.data.JsonReader({ 
																             totalProperty:"totalProperty",
																             root:"root",
																             fields:['id','name','ename','dept','empCode','empId']
															   })										 
															});
										 ds.load({params:{start:0,limit:3}});
										 grid=new Ext.grid.GridPanel({	//搜索后的grid				  										
		  											height:155,
		  											hidden:true,
		  											title:"<font color='red'>搜索结果如下---请选择或重新搜索</font>",
		  											xtype:'grid',
		  											width:540,
		  											frame:true,
												    ds: ds,
												    cm: new Ext.grid.ColumnModel([
												    						new Ext.grid.CheckboxSelectionModel({singleSelect :true}),									   				 			
																		    {header:'中文名',dataIndex:'name'},
																		    {header:'英文名',dataIndex:'ename'},
																		    {header:'部门',dataIndex:'dept'}	,
																		    {header:'员工卡号',dataIndex:'empCode'}																									   															    
																			]),
												    sm:new Ext.grid.CheckboxSelectionModel({
												    						singleSelect :true ,
												    						listeners:{'selectionchange':function(sm){
												    								var count=sm.getCount();
												    								if(count>0){
												    									var data=sm.getSelected();												    									
												    									grid.ownerCt.findByType("hidden")[1].setValue(data.get('id'));
													    								grid.ownerCt.findByType("textfield")[0].setValue(data.get('name'));																					    								
													    								grid.ownerCt.findByType("textfield")[1].setValue(data.get('ename'));	
													    								grid.ownerCt.findByType("textfield")[2].setValue(data.get('dept'));																			    																												    								
												    								}else{										    									
													    								ClearUserWind(grid,true);
												    								}
												    								
												    						}}}),
													autoScroll :true,											    
												 	margins:'0 0 0 0',															                 
								                    bbar:new Ext.PagingToolbar
													            ({
												            		pageSize: 3, 
																	store: ds, 
												                   	autoScroll:true, 
																	displayInfo : true, 
																	beforePageText : '第', 
																	afterPageText : '页共 {0} 页', 
																	displayMsg : '显示 {0} - {1},共 {2} 条', 
																	emptyMsg : '没有数据需要显示'
													            }) 
						  									});
												win.add(grid);
												grid.setVisible(true);
										  		win.setHeight(300);
										  		win.setWidth(460);
										  		win.doLayout();														  		
										  		wait.hide();																															  		
							  		}
							  		else{//grid存在,刷新stroe
							  			ClearUserWind(grid,false);
							  			ds=	grid.getStore();
							  			ds.proxy.conn.url=encodeURI('/OA2/profplan/profuser!searchUser.action?username='+username);
							  			//ds.load({params:{start:0,limit:3}});
							  			ds.reload();
							  			wait.hide();
							  		}
				  	 	
				  	 }
	  	  			}
	  	  		}
	  	 	 }();
	  	var profUserNew=function (){
	  			return{	  				
	  				successFn:function(o,win,obj){
								if(typeof o==="object"){
									 var result = Ext.decode(o.responseText);
									 if(result.success==='true'){									 	
									 	if(win!=''){
									 		Ext.Msg.alert('服务器响应','恭喜你,该记录已经保存成功!');	
									 		win.close();									 		
									 	}else{
									 		Ext.Msg.alert('服务器响应','恭喜你,该记录已经删除成功!');	
									 	}
									 	grid.getStore().reload();									 									 	
									 }else if(result.success==='conflick'){
									 	Ext.Msg.alert('服务器响应','已经存在一条记录相同的用户名,请重新输入!');
									 }else{
									 	Ext.Msg.alert('服务器响应','操作失败,请检查操作,请重试!');
									 }
								}
							},
							failedFn:function(o){
								Ext.Msg.alert('服务器响应','操作失败,服务器错误,请重试!');
							}
	  				
	  			}	  	
	  		}()
  		})  
  </script>
  </head>
  <body>
  	<div id='profuser'></div>
  </body>
</html>
分享到:
评论

相关推荐

    使用java,extjs,配合后台oracle数据库的代码框架

    使用java,extjs,配合后台oracle数据库的代码框架,这段代码是extjs的grid的一个详细案例使用java,extjs,配合后台oracle数据库的代码框架,这段代码是extjs的grid的一个详细案例使用java,extjs,配合后台oracle...

    EXTJS讲解个人项目经历

    EXTJS组件有自己的生命周期,包括创建、渲染、显示、隐藏、销毁等阶段,开发者可以监听和处理这些生命周期事件。 9. **布局管理**: EXTJS提供了多种布局模式,如Fit、Border、Form、Table等,用于控制组件在容器...

    EXTJS 项目图标

    EXTJS 是一个强大的JavaScript 框架,专用于构建富客户端Web应用程序。它以其丰富的组件库、可定制性以及响应式设计而闻名。在EXTJS项目中,图标扮演着重要的角色,它们不仅可以提升用户界面的视觉吸引力,还能帮助...

    ExtJs详细介绍

    ExtJs是一种基于JavaScript的框架,它主要用于开发富互联网应用程序(Rich Internet Applications,RIA)。它主要特点包括优雅的用户界面,跨浏览器的控件,以及丰富的API和真实的控件,这些特点使得ExtJs成为一个...

    轻松搞定Extjs

    - **Extjs命名空间的定义**: 命名空间是一种组织代码的方式,可以避免全局变量污染。 - **ExtjsOOP**: 讲解了Extjs中如何利用面向对象编程实现组件的封装和重用。 - **配置(config)选项**: 详细解释了Extjs中配置...

    ExtJs开始之旅

    你会了解到ExtJS是如何通过组件化的思想来构建页面,每个组件都有自己的生命周期、属性、方法和事件,这使得代码复用和维护变得简单。 接下来,"环境搭建"章节将指导你配置开发环境。这通常包括下载和安装ExtJS库,...

    extjs&可视化开发& 智能提示

    在编写EXTJS代码时,IDE如MyEclipse可以提供代码自动补全功能,根据上下文和已有的类库自动给出可能的函数或变量名,帮助开发者快速准确地输入代码,减少错误并提高编码速度。 在MyEclipse中使用EXTJS框架,首先...

    一个简单的EXTJS Panel

    ### EXTJS Panel 知识点解析 ...在本示例中,我们通过一段简单的HTML代码及JavaScript脚本创建了一个基本的EXTJS `Panel`实例。首先,我们需要引入EXTJS的核心样式表和脚本文件,如下所示: ```html ...

    ExtJs 4 MVC 新机制测试源码奉献

    ExtJs 4 用了一段时间了,今天研究了下ExtJs4的MVC机制,感觉还挺好,建议大家尝试,所以就写了一个demo,帮助那些对ExtJs还不是很懂,或者想用ExtJs4却又不知道怎么做好的朋友。。。多余话不说了大家如果有什么不...

    EXTJS可视化网页编译器

    4. **代码生成**:编译器会自动生成EXTJS代码,这通常是基于EXTJS的MVC(Model-View-Controller)架构,使生成的代码结构清晰、易于维护。 5. **项目管理**:除了单个页面的设计,编译器还可能支持整个项目的管理,...

    ExtJS开发插件及Ext包

    ExtJS是一种基于JavaScript的富客户端应用框架,由Sencha公司开发。它提供了丰富的组件库,用于构建复杂的Web应用程序,尤其适合企业级应用。在“ExtJS开发插件及Ext包”这个主题中,我们将深入探讨如何利用ExtJS...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容新版本。本篇文章将详细介绍如何针对ExtJS 3.x版本定制和优化一...

    Extjs4.2入门详细文档以及表格初级制作

    主要功能包括代码提示、智能补全等,使得开发者能够在编写Extjs代码时获得类似Java编程的体验。 **3.2 安装Spket插件** 安装Spket插件的具体步骤如下: 1. 打开Eclipse,选择“Help”菜单下的“Install New ...

    ExtJS 4.07 Build目录

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端Web应用程序。它的4.07版本是一个重要的迭代,提供了许多改进和修复,以增强应用的性能和用户体验。"ExtJS 4.07 Build目录"指的是该版本的构建输出,包含了...

    extjs插件开发教程

    插件是包含特定功能的一段代码,它可以注入到ExtJS的组件中,以添加新的行为或修改现有组件的功能。开发插件的基本步骤包括定义插件类、实现插件功能和将插件与组件关联。 1. **定义插件类**: 在ExtJS中,插件...

    ExtJs5 去掉textfield边框

    这段代码将所有边框(除了底部)设置为0像素,而底部边框颜色设为黑色,宽度为1像素。 2. `inputWrapCls`和`triggerWrapCls`: 这两个属性用于添加自定义类到输入框包裹元素和触发器(如下拉箭头)的包裹元素上。...

    ExtJs4.2 下拉框树

    6. **注释**:文件中提到的修改处有注释,这有助于其他开发者理解和维护这段代码,注释应该详细说明了所做的改变以及为什么要这样做。 在实际开发过程中,我们还需要确保这个自定义的下拉树组件能够与其他ExtJs组件...

    jsp extjs Efs管理系统

    总的来说,"jsp extjs Efs管理系统"项目提供了一个集成了JSP、EXTJS和多种数据库的实例,对于学习Web开发、特别是Java Web和前端框架的融合应用,具有很高的参考价值。无论是初学者还是经验丰富的开发者,都能从中...

    Extjs4.2 设置tabpanel当前活动页签的样式

    这段代码将当前活动页签的文本颜色设置为红色。其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部...

Global site tag (gtag.js) - Google Analytics