Flex动态生成可编辑的DataGrid具体实现代码(flex补丁合并教程)一看就会

随心笔谈3年前发布 admin
203 0 0

文章摘要

这篇文章介绍了一个Java组件库,用于生成JSON格式的数据,以便在数据网格中显示和编辑。文章详细讲解了如何使用多个渲染器类(如`getButtonRenderer`、`getComboxRenderer`、`getRadioRenderer`等)来生成不同类型的字段数据,包括按钮、数字、复选框、日期和验证字段等。这些渲染器可以配置为绑定到数据源,支持选择状态,并通过回调函数进行事件处理。文章的核心内容是展示如何通过这些渲染器生成结构化的数据,使数据网格功能得以实现。

package datagridview

{

import com.adobe.serialization.json.JSON;

import com.jzh.test.ComboxColumn;

import com.jzh.test.ComboxItem;

import mx.collections.ArrayCollection;

import mx.controls.Alert;

import mx.controls.ComboBase;

import mx.controls.ComboBox;

import mx.controls.DateField;

import mx.controls.RadioButtonGroup;

import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;

import mx.core.ClassFactory;

import mx.validators.RegExpValidator;

import spark.components.DropDownList;

public class RendererUtil

{

public function RendererUtil()

{

}

public static function getButtonRenderer():ClassFactory{

var f:ClassFactory=new ClassFactory(OperateButtons);

f.properties={};

return f;

}

public static function getNumRenderer():ClassFactory{

var f:ClassFactory=new ClassFactory(numLabel);

f.properties={};

return f;

}

public static function getComboxRenderer(arr:ArrayCollection,label:String):ClassFactory{

//应该在这里查询数据库

var f:ClassFactory=new ClassFactory(ComboBox);

f.properties={dataProvider: arr,labelField:label,selectedIndex:’0′,selectedItem:’石质路面’};//添加属性,绑定选择状态

return f;

}

public static function getRadioRenderer(label:String):ClassFactory{

var f:ClassFactory=new ClassFactory(ComboBox);

var arr:ArrayCollection=new ArrayCollection();

arr.addItem(“是”);

arr.addItem(“否”);

f.properties={dataProvider: arr,labelField:label,selectedIndex:’0′,selectedItem:’否’};//添加属性,绑定选择状态

return f;

}

public static function getDateRenderer():ClassFactory{

var f:ClassFactory=new ClassFactory(DateField);

f.properties={formatString:”YYYY-MM-DD”,showToday:true};//添加属性,绑定选择状态

return f;

}

public static function getValidateRenderer():ClassFactory{

var f:ClassFactory=new ClassFactory(RegExpValidator);

f.properties={ source:”roadcode”,

property:”text” ,

expression:”^[0-9]*$”,

noMatchError:”填写验证不通过时显示他提示信息” };//添加属性,绑定选择状态

return f;

}

public static function getRenderer(label:String,callback:Function=null):ClassFactory{

var f:ClassFactory=new ClassFactory(numLabel);

f.properties={lab:label,callback:callback};

return f;

}

}

}

© 版权声明

相关文章