`
yunzhongxia
  • 浏览: 647357 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flexed toolkit组件库之CForm介绍

    博客分类:
  • flex
阅读更多


Flexed toolkit是一个简单易用的flex组件库。主页的地址是http://code.google.com/p/flexedtoolkit/。本文主要讲解其中的一个form组件CForm的用法。

 

开发中需要很多的form表单,虽然flex组件库中已经包含form组件但是form组件的功能太简单了,例如:表单项按2列排放,重置,得到表单的数据等,都需要自己写很长的代码。再一次感谢Flexed toolkit的作者为我们提供了CForm组件来解决这些问题。

CForm组件的原理是根据XML中的信息动态创建flex组件,优点在于:布局、验证等都可以是自动的,程序员可以把更多的精力放在业务逻辑上。

 下面举个简单的例子是讲下CForm组件的使用方法:

1.导入cform.swc。

2.编写一个basic.xml文件,问价内容如下:

 

<?xml version="1.0" encoding="utf-8"?>
<cform columns="2" vgap="5" igap="1">
	<group label="用户信息" column="1">
		<formitem>
			<field id="fname" label="姓名">
				<widget type="text" default="韩敬诺"/>
			</field>
		</formitem> 
		<formitem>
			<field id="age" label="年龄">
				<widget type="stepper" default="26" min="1" max="200"/>
			</field>
		</formitem>
		<formitem>
			<field id="gender" label="性别">
				<widget type="radiogroup">
					<item data="male" label="男" selected="true"/>
					<item data="female" label="女"/>
				</widget>
			</field>
		</formitem>
		<formitem>
			<field id="bday" label="生日">
				<widget type="date" showtime="true"/>
			</field>
		</formitem>
		<formitem>
			<field id="alive" label="婚否">
				<widget type="checkbox" selected="false"/>
			</field>
		</formitem>
	</group>
	<group label="其他信息" column="2">
		<formitem>
			<field id="address" label="Email">
				<widget type="textarea" default="hanjingnuo@163.com"/>
			</field>
		</formitem>
	</group>
</cform>

 

3.在Application的初始化方法中添加以下内容

 

   

 import flexed.widgets.form.CForm;
 public var cf:CForm;

 

 

private function init():void{
    var str:String="basic.xml";
    cf=new CForm();
    cf.widgetsFile=str;
    cf.init();
    box.addChild(cf);
}

 

以上是用as3创建的 也可以用mxml来创建cform组件。

<flexed:CForm id="cfrm" widgetsFile="basic.xml" 
             verticalCenter="0"  
             verticalScrollPolicy="auto" horizontalCenter="0"  
             horizontalScrollPolicy="off"
             width="400" height="100%"/>

 

注意:cform此时并不会创建,需要手动调用它的init()方法。

 

来看下效果吧

 

 

cFormValidation是表单验证函数。

例如以下是验证数字和空置的验证函数。

private function validateForm(id:String, value:Object, values:Object):ValidationResult{
			var result:ValidationResult = new ValidationResult(false);
			if(id == "fname" || id == "txtFName"){
				var rxpNumber:RegExp = /\d/g
				var match:Array = null;
					match = (value as String).match(rxpNumber);
				
				if(match.length != 0)
					result = new ValidationResult(true,null,"","No numbers allowed in this field!!!");
			}else if(id == "txtCoName"){
				if(value == "" || value == null)
					 result = new ValidationResult(true,null,"","You HAVE to enter a company name!");
			}
			return result;
		}

 

getData(false) 得到cform的data值 如果参数是false则得到所有值,如果为空则得到修改过的值。

 

resetCForm()将表单置空。

 

setData(values:Object);为表单赋值。

 

getWidget("WidgetID").getUIComponent() 访问cform组件里面的内部组件。

 

createCFormFromXML(new XML());从一个XML对象创建CForm。

 

 

附件是例子的源代码。

 

 

  • 大小: 12.4 KB
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics