`
newlethe
  • 浏览: 83830 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

EXT表单组件常见属性介绍(三)

    博客分类:
  • Ext
阅读更多

本范例展示如何使用表单的各种组件。

下拉框组件展示了5种使用范例:普通下拉框、绑定HTML组件的下拉框、树形下拉框、分页下拉框、多选下拉框等。



  

 

Js代码 复制代码
  1. Ext.onReady(function(){   
  2.     Ext.BLANK_IMAGE_URL = "/widgets/ext-2.2/resources/images/default/s.gif";    
  3.     Ext.QuickTips.init();   
  4.     Ext.form.Field.prototype.msgTarget = "qtip";   
  5.   
  6.     //component   
  7.     var hiddenField = new Ext.form.Hidden({   
  8.         name: "hiddenField",   
  9.         value: "1"  
  10.     });   
  11.   
  12.     var usernameField = new Ext.form.TextField({   
  13.         name: "username",   
  14.         fieldLabel: "用户名",   
  15.         allowBlank: true,   
  16.         blankText: "请输入用户名!"  
  17.     });   
  18.   
  19.     var pwdField = new Ext.form.TextField({   
  20.         name: "password",   
  21.         fieldLabel: "密码",   
  22.         allowBlank: true,   
  23.         blankText: "请输入密码!",   
  24.         inputType: "password"  
  25.     });   
  26.   
  27.     var ageField = new Ext.form.NumberField({   
  28.         name: "age",   
  29.         allowBlank: true,   
  30.         blankText: "请输入年龄!",   
  31.         fieldLabel: "年龄",   
  32.         allowDecimals: false,   
  33.         allowNegative: false,   
  34.         minValue: 18,   
  35.         minText: "年龄不能少于18",   
  36.         maxValue: 100,   
  37.         maxText: "年龄不能大于100"  
  38.     });   
  39.   
  40.     var love1 = new Ext.form.Checkbox({   
  41.         name: "love1",   
  42.         boxLabel: "打球",   
  43.         inputValue: "1"  
  44.     });   
  45.   
  46.     var love2 = new Ext.form.Checkbox({   
  47.         name: "love2",   
  48.         boxLabel: "游泳",   
  49.         inputValue: "2"  
  50.     });   
  51.   
  52.     var love3 = new Ext.form.Checkbox({   
  53.         name: "love3",   
  54.         boxLabel: "登山",   
  55.         inputValue: "3"  
  56.     });   
  57.   
  58.     var loveGroup = new Ext.form.CheckboxGroup({   
  59.         name: "love",   
  60.         columns: [80, 80, 1.0],   
  61.         fieldLabel: "爱好",   
  62.         items: [love1, love2, love3]   
  63.     });   
  64.   
  65.     var sex1 = new Ext.form.Radio({   
  66.         name: "sex1",   
  67.         boxLabel: "男",   
  68.         inputValue: "1"  
  69.     });   
  70.   
  71.     var sex2 = new Ext.form.Radio({   
  72.         name: "sex1",   
  73.         boxLabel: "女",   
  74.         inputValue: "0"  
  75.     });   
  76.   
  77.     var sexGroup = new Ext.form.RadioGroup({   
  78.         name: "sex",   
  79.         columns: [80, 1.0],   
  80.         fieldLabel: "性别",   
  81.         items: [sex1, sex2]   
  82.     });   
  83.   
  84.     //本地数据源的组合框   
  85.     var store = new Ext.data.SimpleStore({   
  86.         fields: ["code""name"],   
  87.         data: [   
  88.             ["1""北京"],   
  89.             ["5""上海"],   
  90.             ["4",  "广东"]   
  91.         ]   
  92.     });   
  93.     var cmbProvince = new Ext.form.ComboBox({   
  94.         id: "cmbProvince",   
  95.         hiddenName: "province.id",   
  96.         fieldLabel: "省份",   
  97.         resizable: true,   
  98.         editable: false,   
  99.         width: 100,   
  100.         emptyText: "请选择...",   
  101.         store: store,   
  102.         valueField: "code",   
  103.         displayField: "name",   
  104.         triggerAction: "all",   
  105.         mode: "local"  
  106.     });   
  107.   
  108.     //远程数据源的组合框   
  109.     var store2 = new Ext.data.SimpleStore({   
  110.         fields: ["name"],   
  111.         proxy: new Ext.data.HttpProxy({   
  112.             url: "../testForm!loadData.action"  
  113.         })   
  114.     });   
  115.   
  116.     var cmbManager = new Ext.form.ComboBox({   
  117.         hiddenName: "manager",   
  118.         fieldLabel: "经理",   
  119.         editable: false,   
  120.         triggerAction: "all",   
  121.         mode: "local",   
  122.         maxHeight: 200,   
  123.         store: new Ext.data.SimpleStore({fields:[],data:[[]]}),   
  124.         onSelect: Ext.emptyFn,   
  125.         tpl: "<tpl for='.'><div id='tree'></div></tpl>"  
  126.     });   
  127.   
  128.     var root = new Ext.tree.TreeNode({   
  129.         nodeId: 1,   
  130.         text: "根节点",   
  131.         expanded: true  
  132.     });   
  133.     root.appendChild(new Ext.tree.TreeNode({nodeId:2, text:"节点A", leaf:true}));   
  134.     root.appendChild(new Ext.tree.TreeNode({nodeId:3, text:"节点B", leaf:true}));   
  135.   
  136.     var tree = new Ext.tree.TreePanel({   
  137.         root: root,   
  138.         border: false,   
  139.         autoHeight: true,   
  140.         autoScroll: true  
  141.     });   
  142.   
  143.     tree.on("click"function(node){      
  144.         if(!node.isLeaf()) return//只能选择叶节点   
  145.         //下拉框的隐藏值   
  146.         if(cmbManager.hiddenField){   
  147.             cmbManager.hiddenField.value = node.attributes.nodeId;   
  148.         }   
  149.         cmbManager.setRawValue(node.text); //下拉框的显示值   
  150.         cmbManager.collapse(); //折叠下拉框   
  151.     });   
  152.   
  153.     cmbManager.on("expand"function(){     
  154.         tree.render("tree");      
  155.     });    
  156.   
  157.     //分页远程数据源的组合框   
  158.     var store3 = new Ext.data.JsonStore({   
  159.         url: "../testForm!loadData3.action",   
  160.         totalProperty: "totalNum",   
  161.         root: "books",   
  162.         fields: ["id""name"]   
  163.     });   
  164.     var cmbBook = new Ext.form.ComboBox({   
  165.         hiddenName: "books",   
  166.         fieldLabel: "书籍",   
  167.         store: store3,   
  168.         valueField: "name",   
  169.         displayField: "name",   
  170.         triggerAction: "all",   
  171.         mode: "remote",   
  172.         queryParam: "books",   
  173.         loadingText: "正在装载数据...",   
  174.         width: 180,   
  175.         minChars: 1,   
  176.         editable: false,   
  177.         listWidth: 250,   
  178.         pageSize: 3   
  179.     });   
  180.   
  181.     //HTML标准组件   
  182.     var cmbPass = new Ext.form.ComboBox({   
  183.         hiddenName: "status",   
  184.         fieldLabel: "是否有效",   
  185.         triggerAction: "all",   
  186.         editable: false,   
  187.         width: 100,   
  188.         transform: "isPass",   
  189.         lazyRender: true  
  190.     });   
  191.   
  192.     var cmbTimes = new Ext.form.TimeField({   
  193.         hiddenName: "time",   
  194.         fieldLabel: "时间",   
  195.         minValue: "09:00",   
  196.         minText: "所选时间应大于{0}",   
  197.         maxValue: "18:00",   
  198.         maxText: "所选时间应小于{0}",   
  199.         format: "H时i分",   
  200.         increment: 30,   
  201.         invalidText: "时间格式无效!",   
  202.         maxHeight: 200,   
  203.         width: 100,   
  204.         value: "09时00分",   
  205.         editable: false  
  206.     });   
  207.   
  208.     var cmbMonths = new Ext.ux.MultiSelectCombo({   
  209.         hiddenName: "months",   
  210.         fieldLabel: "月份",   
  211.         maxHeight: 200,   
  212.         editable: false,   
  213.         store: [["201010","201010"], ["201009","201009"], ["201008","201008"], ["201007","201007"], ["201006","201006"]],   
  214.         mode: "local",   
  215.         width: 180,   
  216.         maxItemsCount: 3,   
  217.         maxItemsCountText: "最多只能选择三个选项!"  
  218.     });   
  219.   
  220.     var cmbBirths =  new Ext.form.DateField({   
  221.         name: "births",   
  222.         fieldLabel: "出生日期",   
  223.         disabledDays: [0,6],   
  224.         disabledDaysText: "禁止选择周末!",   
  225.         width: 100,   
  226.         readOnly: true,   
  227.         format: "Y-m-d",   
  228.         invalidText: "不是有效的日期值!"  
  229.     });   
  230.   
  231.     var fieldSet1 = new Ext.form.FieldSet({   
  232.         title: "下拉框",   
  233.         checkboxName: "fieldSet1",   
  234.         checkboxToggle: true,   
  235.         autoHeight: true,   
  236.         layout: "table",   
  237.         layoutConfig: {   
  238.             columns: 3   
  239.         },   
  240.         defaults: {   
  241.             style:"margin-left:8px; margin-top:3px; margin-right:8px; margin-bottom:3px; valign:top",   
  242.             layout:"form",   
  243.             labelAlign: "right"  
  244.         },   
  245.         items: [   
  246.             {rowspan:1, colspan:1, items:[cmbProvince]},   
  247.             {rowspan:1, colspan:1, items:[cmbManager]},   
  248.             {rowspan:1, colspan:1, items:[cmbBook]},   
  249.             {rowspan:1, colspan:1, items:[cmbPass]},   
  250.             {rowspan:1, colspan:1, items:[cmbTimes]},   
  251.             {rowspan:1, colspan:1, items:[cmbMonths]},   
  252.             {rowspan:1, colspan:1, items:[cmbBirths]}]   
  253.     });   
  254.   
  255.     var remarksField = new Ext.form.TextArea({   
  256.         name: "remarks",   
  257.         fieldLabel: "备注",   
  258.         width: 400,   
  259.         height: 80   
  260.     });   
  261.   
  262.     var form = new Ext.form.FormPanel({   
  263.         id: "frmAddUser",   
  264.         title: "新增用户",   
  265.         autoWidth: true,   
  266.         autoHeight: true,   
  267.         frame: true,   
  268.         renderTo: Ext.getBody(),   
  269.         labelWidth: 70,   
  270.         tbar: toolbar,   
  271.         items: [hiddenField, usernameField, pwdField, ageField, loveGroup, sexGroup,    
  272.             fieldSet1, remarksField],   
  273.         url: "../testForm!ajaxSubmitForm.action"  
  274.     });   
  275. });  
Ext.onReady(function(){
	Ext.BLANK_IMAGE_URL = "/widgets/ext-2.2/resources/images/default/s.gif"; 
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = "qtip";

	//component
	var hiddenField = new Ext.form.Hidden({
		name: "hiddenField",
		value: "1"
	});

	var usernameField = new Ext.form.TextField({
		name: "username",
		fieldLabel: "用户名",
		allowBlank: true,
		blankText: "请输入用户名!"
	});

	var pwdField = new Ext.form.TextField({
		name: "password",
		fieldLabel: "密码",
		allowBlank: true,
		blankText: "请输入密码!",
		inputType: "password"
	});

	var ageField = new Ext.form.NumberField({
		name: "age",
		allowBlank: true,
		blankText: "请输入年龄!",
		fieldLabel: "年龄",
		allowDecimals: false,
		allowNegative: false,
		minValue: 18,
		minText: "年龄不能少于18",
		maxValue: 100,
		maxText: "年龄不能大于100"
	});

	var love1 = new Ext.form.Checkbox({
		name: "love1",
		boxLabel: "打球",
		inputValue: "1"
	});

	var love2 = new Ext.form.Checkbox({
		name: "love2",
		boxLabel: "游泳",
		inputValue: "2"
	});

	var love3 = new Ext.form.Checkbox({
		name: "love3",
		boxLabel: "登山",
		inputValue: "3"
	});

	var loveGroup = new Ext.form.CheckboxGroup({
		name: "love",
		columns: [80, 80, 1.0],
		fieldLabel: "爱好",
		items: [love1, love2, love3]
	});

	var sex1 = new Ext.form.Radio({
		name: "sex1",
		boxLabel: "男",
		inputValue: "1"
	});

	var sex2 = new Ext.form.Radio({
		name: "sex1",
		boxLabel: "女",
		inputValue: "0"
	});

	var sexGroup = new Ext.form.RadioGroup({
		name: "sex",
		columns: [80, 1.0],
		fieldLabel: "性别",
		items: [sex1, sex2]
	});

	//本地数据源的组合框
	var store = new Ext.data.SimpleStore({
		fields: ["code", "name"],
		data: [
			["1", "北京"],
			["5", "上海"],
			["4",  "广东"]
		]
	});
	var cmbProvince = new Ext.form.ComboBox({
		id: "cmbProvince",
		hiddenName: "province.id",
		fieldLabel: "省份",
		resizable: true,
		editable: false,
		width: 100,
		emptyText: "请选择...",
		store: store,
		valueField: "code",
		displayField: "name",
		triggerAction: "all",
		mode: "local"
	});

	//远程数据源的组合框
	var store2 = new Ext.data.SimpleStore({
		fields: ["name"],
		proxy: new Ext.data.HttpProxy({
			url: "../testForm!loadData.action"
		})
	});

	var cmbManager = new Ext.form.ComboBox({
		hiddenName: "manager",
		fieldLabel: "经理",
		editable: false,
		triggerAction: "all",
		mode: "local",
		maxHeight: 200,
		store: new Ext.data.SimpleStore({fields:[],data:[[]]}),
		onSelect: Ext.emptyFn,
		tpl: "<tpl for='.'><div id='tree'></div></tpl>"
	});

	var root = new Ext.tree.TreeNode({
		nodeId: 1,
		text: "根节点",
		expanded: true
	});
	root.appendChild(new Ext.tree.TreeNode({nodeId:2, text:"节点A", leaf:true}));
	root.appendChild(new Ext.tree.TreeNode({nodeId:3, text:"节点B", leaf:true}));

	var tree = new Ext.tree.TreePanel({
		root: root,
		border: false,
		autoHeight: true,
		autoScroll: true
	});

	tree.on("click", function(node){   
		if(!node.isLeaf()) return; //只能选择叶节点
		//下拉框的隐藏值
		if(cmbManager.hiddenField){
			cmbManager.hiddenField.value = node.attributes.nodeId;
		}
		cmbManager.setRawValue(node.text); //下拉框的显示值
		cmbManager.collapse(); //折叠下拉框
	});

	cmbManager.on("expand", function(){  
		tree.render("tree");   
	}); 

	//分页远程数据源的组合框
	var store3 = new Ext.data.JsonStore({
		url: "../testForm!loadData3.action",
		totalProperty: "totalNum",
		root: "books",
		fields: ["id", "name"]
	});
	var cmbBook = new Ext.form.ComboBox({
		hiddenName: "books",
		fieldLabel: "书籍",
		store: store3,
		valueField: "name",
		displayField: "name",
		triggerAction: "all",
		mode: "remote",
		queryParam: "books",
		loadingText: "正在装载数据...",
		width: 180,
		minChars: 1,
		editable: false,
		listWidth: 250,
		pageSize: 3
	});

	//HTML标准组件
	var cmbPass = new Ext.form.ComboBox({
		hiddenName: "status",
		fieldLabel: "是否有效",
		triggerAction: "all",
		editable: false,
		width: 100,
		transform: "isPass",
		lazyRender: true
	});

	var cmbTimes = new Ext.form.TimeField({
		hiddenName: "time",
		fieldLabel: "时间",
		minValue: "09:00",
		minText: "所选时间应大于{0}",
		maxValue: "18:00",
		maxText: "所选时间应小于{0}",
		format: "H时i分",
		increment: 30,
		invalidText: "时间格式无效!",
		maxHeight: 200,
		width: 100,
		value: "09时00分",
		editable: false
	});

	var cmbMonths = new Ext.ux.MultiSelectCombo({
		hiddenName: "months",
		fieldLabel: "月份",
		maxHeight: 200,
		editable: false,
		store: [["201010","201010"], ["201009","201009"], ["201008","201008"], ["201007","201007"], ["201006","201006"]],
		mode: "local",
		width: 180,
		maxItemsCount: 3,
		maxItemsCountText: "最多只能选择三个选项!"
	});

	var cmbBirths =  new Ext.form.DateField({
		name: "births",
		fieldLabel: "出生日期",
		disabledDays: [0,6],
		disabledDaysText: "禁止选择周末!",
		width: 100,
		readOnly: true,
		format: "Y-m-d",
		invalidText: "不是有效的日期值!"
	});

	var fieldSet1 = new Ext.form.FieldSet({
		title: "下拉框",
		checkboxName: "fieldSet1",
		checkboxToggle: true,
		autoHeight: true,
		layout: "table",
		layoutConfig: {
			columns: 3
		},
		defaults: {
			style:"margin-left:8px; margin-top:3px; margin-right:8px; margin-bottom:3px; valign:top",
			layout:"form",
			labelAlign: "right"
		},
		items: [
			{rowspan:1, colspan:1, items:[cmbProvince]},
			{rowspan:1, colspan:1, items:[cmbManager]},
			{rowspan:1, colspan:1, items:[cmbBook]},
			{rowspan:1, colspan:1, items:[cmbPass]},
			{rowspan:1, colspan:1, items:[cmbTimes]},
			{rowspan:1, colspan:1, items:[cmbMonths]},
			{rowspan:1, colspan:1, items:[cmbBirths]}]
	});

	var remarksField = new Ext.form.TextArea({
		name: "remarks",
		fieldLabel: "备注",
		width: 400,
		height: 80
	});

	var form = new Ext.form.FormPanel({
		id: "frmAddUser",
		title: "新增用户",
		autoWidth: true,
		autoHeight: true,
		frame: true,
		renderTo: Ext.getBody(),
		labelWidth: 70,
		tbar: toolbar,
		items: [hiddenField, usernameField, pwdField, ageField, loveGroup, sexGroup, 
			fieldSet1, remarksField],
		url: "../testForm!ajaxSubmitForm.action"
	});
});

 

分享到:
评论

相关推荐

    Ext表单组件之checkbox

    本篇文章将深入探讨Ext表单组件中的checkbox,以及如何利用源码和相关工具进行定制和优化。 1. **复选框的基本概念** 复选框在用户界面中常用于让用户从多个选项中选择一个或多个。在Ext JS中,复选框是`Ext.form....

    ext表单设计器,常用表单拖拉实现

    EXT表单是EXT库的核心组件之一,用于构建用户输入数据的界面。它们支持多种类型的字段,如文本框、复选框、单选按钮、下拉列表等,并且可以进行复杂的布局管理,如表格布局、流式布局和绝对布局。表单设计器通常包括...

    Ext.form表单中各种属性应用详解

    ### Ext.form表单中各种属性应用详解 ...以上介绍了 **Ext.form** 表单中常见的几个组件及其配置选项,这些组件为 Web 应用程序提供了丰富的功能和用户体验。通过合理的配置,可以轻松构建出复杂且交互性强的表单界面。

    Ext 动态加载表单数据

    通过以上步骤,你可以实现动态加载Ext表单数据的功能。在实际应用中,可能还需要考虑错误处理、数据验证、动态更新等问题,但以上代码提供了一个基础的实现思路。不断学习和实践,你将能更好地掌握Ext JS在构建动态...

    EXT表单验证之TextField

    总而言之,EXT表单验证中的TextField组件通过`vtype`属性提供了丰富的验证机制,能够确保用户输入的数据质量,从而提高应用程序的稳定性和用户体验。开发者可以根据需要选择合适的vtype,或者自定义验证规则,以满足...

    Ext教程ext2-Ext简易教程

    例如,Ext的`Ext.onReady`函数用于确保DOM加载完成后再执行代码,这是初始化Ext组件的常见方法。以下是一个简单的例子,展示如何使用MessageBox组件弹出一个警告对话框: ```html Ext.onReady(function() { Ext....

    ext 自动生成器自动生成组件

    2. 参数配置:允许开发者设定组件的具体属性,如尺寸、颜色、行为等。 3. 代码预览:在生成代码前,可以预览组件的外观和功能。 4. 插件扩展:可能支持第三方插件,以实现更多特定功能。 5. 版本兼容:确保生成的...

    ext JS 源码和学习资料

    EXT JS 的源码结构清晰,包括核心库、组件、布局、数据管理、表单元素等模块。通过阅读源码,开发者可以了解到EXT JS如何实现组件化、事件处理、数据绑定等功能,进一步优化自己的代码结构和性能。例如,ext-3.x版本...

    Ext+ASP.NET+SQL2005简单实现了根据数据库动态生成表单的Demo.

    在本示例中,Ext JS被用来动态创建表单组件,如文本框、下拉列表、复选框等,这些组件可以根据数据库字段的类型和属性自动生成。Ext JS的灵活性使得能够根据数据库的结构轻松调整UI。 2. **动态操作数据库**: ...

    ext实例 ext操作步骤

    EXT提供了`Ext.Window`类来创建窗口,可以设置窗口大小、位置、标题、按钮等属性,并且可以包含其他EXT组件,如表格、表单等。 **EXT基本表格(GridPanel)介绍**:EXT的表格组件,即`Ext.grid.GridPanel`,是一种...

    EXT和JAVA例子

    EXT JS提供了丰富的UI组件,如GridPanel(表格),FormPanel(表单),Window(弹出窗口),TabPanel(选项卡)等,这些都是构建用户界面的基础。开发者可以通过配置对象定义组件的属性,如大小、颜色、样式等,并...

    ext 3.0 中文API

    3. **Form**:EXT提供了强大的表单组件,如文本字段、下拉框、复选框、单选按钮等,以及表单验证功能。这些组件可以与服务器端进行数据交换,实现数据的增删改查。 4. **Tree**:EXT的树形组件用于展示层次结构的...

    EXT2.0帮助文档CHM版

    EXT API文档详细介绍了EXT库中的类、方法、属性和事件,使开发者能够快速掌握EXT的用法。例如,文档中会阐述EXT的GridPanel组件,这是一个用于展示表格数据的强大组件,支持排序、分页、行选择等多种功能。开发者...

    EXT.NET网站应用程序开发教程英文版

    7. **表单处理**:表单是网页应用中常见的元素,EXT.NET提供了丰富的表单组件和验证机制。这部分会介绍如何创建、验证和提交表单数据。 8. **高级特性**:可能包括EXT.NET的图表、树形视图、拖放功能、网格分页、富...

    ext 3.3.1 api 不可缺少的学习资料

    6. **EXT Forms**:EXT的表单组件功能强大,包括各种输入控件、验证机制以及表单提交和处理策略。开发者可以创建复杂且功能完备的表单系统。 7. **EXT Charts**:EXT 3.3.1版本包含图表组件,可以生成各种统计图表...

    ext培训第三讲.doc 3/4

    ### 第三讲 EXT的常用组件 #### 一、如何创建一个组件 在使用EXT框架时,组件的创建是一项基础但非常重要的技能。组件是构成用户界面的基本单元,可以通过`new`关键字来创建。例如,创建一个窗口使用`new Ext....

    EXT JS 实例集合

    在"EXT 前台 实例 项目"中,我们可以推测这是一个关于EXT JS前端开发的实际应用项目集,它可能包含了EXT JS的各种常见和复杂应用场景,例如数据展示、表格操作、窗口管理、表单处理、树形结构等。通过这些实例,...

    ext js中文开发手册

    表单组件是EXT JS中用于收集用户输入的关键部分。它支持验证规则、布局管理和数据绑定,使表单设计变得简单而直观。 **十七、EXT中的继承** EXT JS采用了面向对象的编程模式,支持类的继承和重写。这允许开发者在...

    Ext 3.0中文手册及帮助文档

    这个中文手册及帮助文档包含了Ext 3.0的全面介绍、API参考、示例代码以及常见问题解答,是开发者进行Ext 3.0应用开发的重要参考资料。 一、Ext概述 Ext是一个基于JavaScript的开源框架,它提供了丰富的UI组件和数据...

    ext-js.zip_ext_ext js_extjs_js ext

    EXT JS的组件库非常丰富,涵盖了大部分常见的Web UI元素,如表格(Grid)、树形视图(Tree)、表单(Forms)、菜单(Menus)、工具栏(Toolbars)等。这些组件都经过精心设计,具有高度可定制性和可扩展性。此外,...

Global site tag (gtag.js) - Google Analytics