`
wjt276
  • 浏览: 640116 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

ExtJS笔记--Ext.form.FormPanel(四)综合实例

阅读更多
//表单开始------------------------------------------------------
	var form = new Ext.form.FormPanel({
	  title: '编辑学生信息',
	  region: 'east',
	  frame: true,
	  width: 300,
	  autoHeight: true,
	  labelAlign: 'right',
	  labelWidth: 60,
	  defaultType: 'textfield',
	  defaults: {
		  width: 200,
		  allowBlank: false
	  },
	  items: [{
		  xtype: 'hidden',
		  name: 'id'
	  },{
		  fieldLabel: '学号',
		  name: 'code'
	  },{
		  fieldLabel: '姓名',
		  name: 'name'
	  },{
		  fieldLabel: '年龄',
		  name: 'age',
	  	xtype: 'numberfield',
	  	allowNegative: false
	  },{
		  fieldLabel: '性别',
		  name: 'sexText',
		  hiddenName: 'sex',
		  xtype: 'combo',
		  store: new Ext.data.SimpleStore({
			  fields: ['value','text'],
			  data: [['1','男'],['0','女']]
	  	}),
		  emptyText: '请选择',
		  mode: 'local',
		  triggerAction: 'all',
		  valueField: 'value',
		  displayField: 'text',
		  readOnly: true
	  },{
		  fieldLabel: '政治面貌',
		  name: 'political',
		  xtype: 'combo',
		  store: new Ext.data.SimpleStore({
		  fields: ['text'],
		  data: [['群众'],['党员'],['团员']]
		  }),
		  emptyText: '请选择',
		  mode: 'local',
		  triggerAction: 'all',
		  valueField: 'text',
		  displayField: 'text',
		  readOnly: true
	  },{
		  fieldLabel: '籍贯',
		  name: 'origin'
	  },{
		  fieldLabel: '所属系',
		  name: 'professional'
	  }],
	  buttons: [{
	  	text: '添加',
	    handler: function() {
		  if (!form.getForm().isValid()) {
				//调用form.getForm().isValid()进行数据校验。如果返回false,
				//说明表单中某些输入组件中的数据还无法通过校验,不应该提交这些错误格式的数据,
				//这时我们应该直接跳出函数,中止提交操作
		  	return;
		  }
		  if (form.getForm().findField("id").getValue() == "") {
			  // 添加
			  form.getForm().submit({
					//这里的form表示我们前面创建的Ext.form.FormPanel,
					//它的getForm()函数返回Form- Panel内部对应的Ext.form.BasicForm。
					//现在我们调用BasicForm的submit()函数,将内部items中输入组件的值提交给后台的jsp/save.jsp
				  url: 'save.jsp',
				  success: function(f, action) {
						//果后台没有出现异常,而且返回的JSON信息中包含{success:true},那么就会执行success参数对应的处理函数
					  if (action.result.success) {
							////创建一个Ext.Msg.alert()显示响应的JSON信息中的msg部分的内容。在用户关闭alert提示框之后,执行方法
						  Ext.Msg.alert('消息', action.result.msg,function(){
							  grid.getStore().reload();//调用grid.getStore().reload()刷新Grid中的数据
							  form.getForm().reset();//form.getForm().reset()清空上次提交的数据
							  form.buttons[0].setText('添加');
						  });
					  }
				  },
				  failure: function() {
						//如果后台出现400或500错误,就会触发failure参数对应的处理函数。
						//这里只是弹出一个alert提示框告诉用户“添加失败”,等待用户对刚才提交失败的信息进行修改或做其他处理
				 	 Ext.Msg.alert('错误', "添加失败");
				  }
			  });
		  } else {
		  // 修改
			  form.getForm().submit({
			  url: 'save.jsp',
			  success: function(f, action) {
			  if (action.result.success) {
			  Ext.Msg.alert('消息',action.result.msg,function(){
			  grid.getStore().reload();
			  form.getForm().reset();
			  form.buttons[0].setText('添加');
			  });
			  }
			  },
			  failure: function() {
			  Ext.Msg.alert('错误', "修改失败");
			  }
			  });
		  }
	  	  }
	  },{
		  	text: '清空',
			handler:function(){
				form.getForm().reset();
				form.buttons[0].setText("添加");
			}
	  },{
	  		text: '删除',
			handler:function(){
				var id = form.getForm().findField("id").getValue();
				if(id == ''){
					Ext.Msg.alert('提示','请选择需要删除的学生记录信息');
				} else {
					Ext.Ajax.request({
						url:'remove.jsp',
						params:"id=" + id,
						success:function(){
							var json = Ext.decode(response.responseText);
							if(json.success){
								Ext.Msg.alert('消息',json.msg,function(){
										grid.getStore().reload();
										form.getForm().reset();
										form.buttons[0].setText("添加");
									}									
								);
							}
						},
						failure:function(){
							Ext.Msg.alert('错误','删除失败');
						}						
					});
				}
			}
	  }]
	});
	//表单结束--------------------------------------------------------------------------
分享到:
评论

相关推荐

    extjs-Ext.ux.form.LovCombo下拉框

    extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题

    ExtJs学习资料28-Ext.data.JsonStore数据存储器.doc

    ExtJs学习资料28-Ext.data.JsonStore数据存储器

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    extjs-theme-bootstrap-master.zip

    extjs-theme-bootstrap-master.zip

    EXTJS-4.2.1.883

    EXTJS-4.2.1.883

    ext-4.2.1-gpl.7z

    ext-4.2.1-gpl.7z

    Extjs 6.2 最新sdk ext-6.2.0-gpl.zip

    官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...

    ExtJs入门实例

    7. ExtJs2.0学习系列(7)--Ext.FormPanel之第四式(其他组件示例篇) 8. ExtJs2.0学习系列(8)--Ext.FormPanel之第五式(综合篇) 9. ExtJs2.0学习系列(9)--Ext.TabPanel之第一式 10. ExtJs2.0学习系列(10)--Ext.TabPanel...

    ext-7.0.0-gpl.zip

    ext-7.0.0-gpl.zip

    extjs-docs-6.0.0-classic.part01.rar

    Ext JS 6最大的变化就是将Ext JS和Touch合并为一个单一的框架。之前的框架的核心(数据、控制器、模型等等)已被调和为一个单一的公共平台。这样,数据和逻辑就能共享,从而帮助开发人员进一步去优化他们的应用程序...

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    extjs3-0-0.d.ts

    extjs3.0 的 Typescript声明文件

    extjs4.1-ux.rar

    Extjs4.1多个扩展 1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button ...主页:https://github.com/harrydeluxe/extjs-ux 注明:在Extjs4.1上是可以使用的,Extjs4.2部分会有问题。

    ExtJs学习笔记,共30讲

    23. extJs 2.0学习笔记(Ext.Panel篇四) 62 24. extJs 2.0学习笔记(组件总论篇) 66 25. extJs 2.0学习笔记(Ext.Element API总结) 69 26. extJs 2.0学习笔记(Element.js篇) 73 27. extJs 2.0学习笔记(DomHelper.js篇) ...

    extJs 2.1学习笔记

    23. extJs 2.0学习笔记(Ext.Panel篇四) 62 24. extJs 2.0学习笔记(组件总论篇) 66 25. extJs 2.0学习笔记(Ext.Element API总结) 69 26. extJs 2.0学习笔记(Element.js篇) 73 27. extJs 2.0学习笔记(DomHelper.js篇) ...

    ext-lang-en.js和ext-lang-zh_CN.js

    Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js

    Spket_ExtJS提示工具ext-core-dev.js.zip

    软件介绍: Spket的ExtJS提示工具,内附需要加入ExtJS的提示内容文件ext-core-dev.js ,所需要的都整合为一个压缩包,一步到位直接使用。featurespluginsext-core-dev.js

    ext-4.2.1-gpl.zip

    ExtJs4环境,不包括例子,太大了没法上传

    extjs-4.2.1.883.7z

    js框架 extjs-4.2.1.883.7z

Global site tag (gtag.js) - Google Analytics