<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>Checkbox TreePanel</title> <link rel="stylesheet" type="text/css" href="/ext/docs/resources/ext-all.css" /> <script type="text/javascript" src="/ext/docs/resources/ext-base.js"></script> <script type="text/javascript" src="/ext/docs/resources/ext-all.js"></script> </head> <body>
<script type="text/javascript"> //1 form 与column 的布局 //2 tabPanel , formPanel ,fitlayout ,表单元素 ,控件校验 表单提交的使用 Ext.onReady(function(){ Ext.QuickTips.init();// 浮动信息提示 Ext.form.Field.prototype.msgTarget = 'side';// 设置控件的错误信息显示位置,主要可选的位置有:qtip,title,under,side,[elementId] var formPanel = new Ext.FormPanel({ renderTo:document.body, title:'formPanel', frame:true, //渲染背景颜色 labelWidth : 60, //显示的标签宽度为45 labelAlign : "right", //标签内容右对齐 bodyStyle:'padding:2px 10px 10px 2px', //使内部元素和边框 有一定距离 width:600, items:[{ //总体上 用列布局 layout:'column', border:false, labelSeparator:':', items:[{ //第一行开始 columnWidth:.5, // 该列的宽度占总宽度的50% border:true, layout:'form',//第一列的布局用form ,并且占50%宽度 items:[{ xtype:'textfield', fieldLabel:'姓名', name:'name', anchor:'80%' //输入框的宽度是总宽度的80%,余下的显示错误信息图标 }] },{ columnWidth:.25,//添加2个radio 第一个有标题, 第二个没有标题 ,2个radio宽度和等于余下宽度的50% layout:'form', border:false, items:[{ style:'margin-top:5px', // 单选按钮和lable对齐 xtype:'radio', fieldLabel:'性别', // 单选按钮总的类别 name:'sex', checked:true, //默认选中这个radio boxLabel:'男' , //单选按钮对应显示的值 inputValue:'男Value', anchor:'80%' //input 宽度80% }] },{ //这个radio 没有标签,需要隐藏所有的标签信息 columnWidth:.25, layout:'form', labelWidth:0, //标签宽度为0 labelSeparator:'', //没有分隔符 hideLabels : true, // 隐藏这个radio的标签设置 border:false, items:[{ style:'margin-top:5px', xtype:'radio', fieldLabel:'', boxLabel : '女', name : 'sex', inputValue : '女', anchor : '80%' }] }]//第一行结束 },{ layout:'column', border:false, labelSeparator:':', items:[{ columnWidth:.5, layout:'form', items:[{ xtype:'datefield', fieldLabel:'出生日期', name:'birthday', anchor:'80%' }] },{ columnWidth:.5, layout:'form', items:[{ xtype:'combo', mode:'local',//数据是本地的 store:new Ext.data.SimpleStore({ fields:['returnValue','displayText'], data:[[1,'小学'],[2,'中学'],[3, '高中']] }), valueField:'returnValue',//下拉框传到后台的值 displayField:'displayText' ,//下拉框显示的数据 hiddenName : 'education',// 大家要注意的是hiddenName和name属性,name只是下拉列表的名称,作用是可通过,而hiddenName才是提交到后台的input的name。如果没有设置hiddenName,在后台是接收不到数据的,这个大家一定要注意。 name: 'education',// 再次提醒,name只是下拉列表的名称 forceSelection:true , //必须选择一个选项 allowBlank : false,// 该选项值不允许为空 ,如果为空则提示 blankText blankText: '请选择学历' , // 提交form时,该项如果没有选择,则提示错误信息"请选择学历" emptyText : '选择学历',// 在没有选择值时显示为“选择学历” editable : false,// 不允许编辑 triggerAction : 'all',// 因为这个下拉是只能选择的,所以一定要设置属性triggerAction为all,不然当你选择了某个选项后,你的下拉将只会出现匹配选项值文本的选择项,其它选择项是不会再显示了,这样你就不能更改其它选项了。 fieldLabel : '学历', // 控件的标题是学历 anchor:'80%' }] }]//第二行结束 },{ //第三行开始i layout:'column', border:false, labelSeparator:':', items:[{ columnWidth:.35, layout:'form', border:false, items:[{ xtype:'checkbox', fieldLabel:'权限', boxLabel:'系统管理员', name:'manager', inputValue:'1', anchor:'80' }] },{ columnWidth:.2, layout:'form', labelWidth : 0, labelSeparator : '', hideLabels : true, items:[{ xtype:'checkbox', fieldLabel:'', name:'manager', boxLabel:'管理员', inputValue:'2', anchor:'80' }] },{ columnWidth:.2, layout:'form', labelWidth : 0, labelSeparator : '', hideLabels : true, items:[{ xtype:'checkbox', fieldLabel:'', boxLabel:'普通用户', name:'manager', inputValue:'3', anchor:'80%' }] }]//第三行结束 },{ //第四行开始 layout : 'column', border : false, labelSeparator : ':', items:[{ columnWidth : .5, layout : 'form', border : false, items : [{ xtype : 'textfield', fieldLabel : '电子邮件', name : 'email', vtype : 'email',// 这里的定义和普通的文本输入框没什么区别,只是多了一个vtypes的属性定义。Vtypes里总共定义了email、url、alpha和alphanum四种类型数据格式,email和url这个不用介绍了,呵呵。alpha是字母和下划线的组合,alphanum是字母、下划线和数字的组合。 allowBlank : false, anchor : '80%' }] }, { columnWidth : .5, layout : 'form', border : false, items : [{ xtype : 'textfield', fieldLabel : '个人主页', name : 'url', vtype : 'url', //验证信息 anchor : '80%' }] }] //第四行 结束 },{ //第五行 开始 xtype:'tabpanel', plain:true,// 将标签页头的背景设置为透明的 border : false, activeTab : 0, height : 235,// 高度设置为235px, bodyStyle : 'padding:10px', items:[{ //第一个tab title:'登陆', layout:'form', defaults:{ width:230 }, defaultType:'textfield', items:[{ fieldLabel : '登录名', name : 'loginID', allowBlank : false, vtype : 'alphanum', //校验 字符与数字混合 allowBlank : false },{ inputType : 'password',// 密码输入框需要定义input控件的类型为password fieldLabel : '密码', name : 'password', allowBlank : false }] },{ //第二个tab title:'数字时间字母', layout:'form', defaults:{ width:230 }, defaultType:'textfield', items : [{ xtype : 'numberfield',// 只能输入数字的输入控件 fieldLabel : '数字', name : 'number' },{ xtype : 'timefield',// 时间输入控件 fieldLabel : '时间', name : 'time' },{ fieldLabel : '纯字母', name : 'char', vtype : 'alpha' }] },{ title : '文本区域', layout : 'fit',// 为了让textarea自适应面板容器,使用了fitlayout作为它的布局 items : { xtype : 'textarea',// 设置类型为textarea id : 'area', fieldLabel : '' } }] //第五行结束 }], buttons:[{ text:'保存', handler:function(){ // 在formpanel类中,form属性指向的是formpanle里的basicform对象,可以通过formpanle.form 来使用该basicform对象 // 保存按钮要做的就是先做basicform的客户端验证,验证通过了则设置该按钮状态为disable,防止2次提交。然后调用formpanle.form.doAction方法提交数据 if(formPanel.form.isValid()){ this.disabled = true; // doAction方法的第一个参数“submit”的意思是表示执行的是提交操作,提交的后台页面是test.jsp(url:'test.asp'), //提交方式是post(method:'post'),没有其它提交参数(params:'') formPanel.form.doAction('submit', { url : 'resForm.jsp', method : 'post', params : '', // 提交成功后执行success定义的函数,后台返回的数据格式是需要我们注意的,一定要json格式,而且必须包含“success:true”,不然不会执行success定义的函数。 // success定义的函数返回两个参数,第一是form本身,第二个是ajax返回的响应结果,在action.result这个json数组了保存了后台返回的数据。 success : function(form, action) { // 例如返回的json结构是"{success:true,data:'成功保存!'}", Ext.Msg.alert('操作', action.result.data); this.disabled = false; }, // 定义failure函数,就是网络通讯存在问题的时候将显示错误信息。 failure : function() { Ext.Msg.alert('操作', '保存失败!'); this.disabled = false; } }); } } },{ // 取消按钮就是简单的reset一下form的控件 text : '取消', handler : function() { formPanel.form.reset(); } }] }); }); </script> </html>
相关推荐
本文将详细介绍Ajax控件中的Accordion、DragPanel、Rating和TabPanel这四个常用控件的使用方法。 1. **Accordion**: Accordion控件允许在一个区域内以折叠面板的形式展示多个部分的内容,用户可以逐个展开或关闭...
将TreePanel与TabPanel结合使用,可以创建出更为复杂且交互性强的用户界面。例如,我们可以在每个TabPanel的标签页中放置一个TreePanel,以呈现不同分类的树状数据。当用户点击TreePanel中的节点时,可以触发事件,...
Form控件则用于创建复杂的Web表单,支持各种输入类型、验证规则和提交处理。在源码中,你可以学习如何设置表单字段、定义验证规则,以及如何处理表单提交后的服务器端逻辑。这对于构建用户交互性强的页面至关重要。 ...
使用方法是这样:首先建立一个figure,并在其中加入一个Text控件,需要注意的是这个text控件所在的位置就是将来标签页所在的位置,然后将附件中的tabpanel2.6中的文件放到figure同目录下,然后在命令行输入 ...
- **表单布局(FormLayout)**:使用`layout: "form"`,专为管理表单字段设计,确保输入字段在表单中正确对齐。 - **表格布局(TableLayout)**:用`layout: "table"`,模拟HTML表格结构,允许设置列数、跨行和跨...
CVI 8.0 中的 TAB 控件的使用需要注意序号是基于 0 的,属性设置需要把 TAB 控件作为其主页面的控件使用,对每个 TAB 分页里的控件进行操作或属性设置需要使用 GetPanelHandleFromTabPage 函数获得面板的句柄,并...
此外,例子中还展示了如何创建和添加TreeNode到TreePanel,虽然这部分内容并非直接与TabPanel布局相关,但它是ExtJS中构建树形结构数据的常见操作。 总的来说,这个例子演示了如何使用ExtJS创建一个复杂的多区域...
将`TreePanel`与`TabPanel`结合使用,可以实现以下功能: 1. **导航菜单**:`TreePanel`可以作为导航菜单,每个节点对应一个`TabPanel`的标签页,用户点击节点时,切换到相应的标签页内容。 2. **内容分组**:每个`...
Tab控件是网页设计中常用的一种用户界面元素,它的功能是将不同的内容组织在不同的标签页下,使得用户可以通过点击不同的标签来切换显示的内容。在AJAX(Asynchronous JavaScript and XML)技术出现后,Tab控件得到...
需要注意的是,Extjs提供了多种方式来设置tabpanel的样式,例如可以使用Extjs的主题机制来设置tabpanel的样式,也可以使用CSS样式表来设置tabpanel的样式。不同的方法都有其优缺,开发者可以根据实际需求选择合适的...
表单体是表单的基本组成部分,包含了各种输入控件。 **创建表单字段** 可以通过`Ext.form.Field`类创建各种类型的表单字段,如文本框、下拉列表等。 **完成表单** 将创建好的表单字段组合在一起,形成完整的表单...
- 表单控件:FormPanel可以包含各种表单元素,如文本框`textfield`、密码框`passwordfield`、选择框`checkbox`、复选框组`checkboxgroup`、单选框`radiogroup`、下拉框`combobox`、日期选择器`datefield`等。...
- **Form 布局**:适用于表单,它使子元素以标签/字段的形式进行布局。 - **Card 布局**:常用于 TabPanel,只显示当前选中的子元素。 - **Table 布局**:用于表格布局,支持行列布局。 每种布局都有其特定的应用...
"28-表单FormPanel控件的使用.doc"讲述了ExtJs中的表单组件,包括创建表单、添加字段、验证用户输入以及提交数据等操作。表单组件在数据收集和用户交互中扮演着重要角色。 最后,"ext-3.4.1"可能是一个包含ExtJs...
在"TabPanel选卡结合右键菜单实例"中,我们关注的是如何将TabPanel与右键菜单功能结合起来。右键菜单是用户交互的一种扩展形式,当用户在特定元素上点击鼠标右键时,会弹出一个包含多种操作选项的菜单,这种设计可以...
【标题】"TabPanel 选项卡"是一种常见的网页设计元素,用于组织和展示多个相互关联的内容区域。在网页设计中,TabPanel 提供了一种整洁、高效的方式,让用户通过点击不同的标签来切换显示不同的信息板块,提高用户...
在本文中,我们将深入探讨如何使用Coolite布局技术,结合数据库数据绑定到TreePanel,并利用TabPanel进行动态展示。Coolite是一种强大的前端开发框架,它提供了丰富的组件和灵活的布局方式,使得创建复杂的Web应用...
### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...
6. **工具应用**:标签还提到了“工具”,这可能是指使用某些开发工具或库来辅助`TabPanel`的开发,比如使用IDE的插件进行布局设计,或者使用jQuery、Bootstrap等库来快速构建`TabPanel`。 7. **可访问性和响应式...