国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Flex > 正文

Flex動(dòng)態(tài)生成可編輯的DataGrid具體實(shí)現(xiàn)代碼

2024-09-08 18:16:53
字體:
供稿:網(wǎng)友
一:先說說我寫這個(gè)DataGrid具有的功能
1、表頭是動(dòng)態(tài)生成的。
2、每行都是有序號(hào)的。
3、每行都是可以編輯、插入、刪除、修改的。
4、每個(gè)單元格都是加驗(yàn)證的。
5、單元格有些是經(jīng)過渲染生成的比如:Combobox,DateField...

二、說一些實(shí)現(xiàn)這些功能的困難
寫這個(gè)的時(shí)候感覺都是困難不知道,走過來了也就木有神馬啦,最讓我費(fèi)勁的就是渲染例如:Combobox在渲染的時(shí)候不能用ItemRenderer因?yàn)樗荒芙壎ㄖ担荒苡肐temEditor但是怎樣獲得這個(gè)一個(gè)經(jīng)過渲染的對(duì)象,通過百度不斷地百度,終于發(fā)現(xiàn)了ClassFactory這個(gè)工廠可以生產(chǎn)各種想要的組件。各種困難現(xiàn)在都記不起來了,三天時(shí)間終于完成啦。為什嗎要這樣寫呢?因?yàn)橐鰯?shù)據(jù)更新系統(tǒng),每年數(shù)據(jù)都會(huì)有變化,這樣頁面也需要變化,總不能每年都去改源碼吧,不如想個(gè)法子全給他整成動(dòng)態(tài)的。這就是寫這個(gè)的初衷。

三、關(guān)鍵源碼

復(fù)制代碼 代碼如下:


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{
//應(yīng)該在這里查詢數(shù)據(jù)庫
var f:ClassFactory=new ClassFactory(ComboBox);
f.properties={dataProvider: arr,labelField:label,selectedIndex:'0',selectedItem:'石質(zhì)路面'};//添加屬性,綁定選擇狀態(tài)
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:'否'};//添加屬性,綁定選擇狀態(tài)
return f;
}
public static function getDateRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(DateField);
f.properties={formatString:"YYYY-MM-DD",showToday:true};//添加屬性,綁定選擇狀態(tài)
return f;
}
/*本來想在這渲染生成驗(yàn)證器的,無奈技術(shù)在達(dá)不到*/
public static function getValidateRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(RegExpValidator);
f.properties={ source:"roadcode",
property:"text" ,
expression:"^[0-9]*$",
noMatchError:"填寫驗(yàn)證不通過時(shí)顯示他提示信息" };//添加屬性,綁定選擇狀態(tài)
return f;
}
/*測(cè)試用*/
public static function getRenderer(label:String,callback:Function=null):ClassFactory{
var f:ClassFactory=new ClassFactory(numLabel);
f.properties={lab:label,callback:callback};
return f;
}
}
}


以上代碼是渲染器部分。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 斗六市| 博罗县| 九龙城区| 平遥县| 双城市| 都江堰市| 栾川县| 北辰区| 临江市| 曲阜市| 温宿县| 措勤县| 盐山县| 吴桥县| 巴中市| 恩施市| 长垣县| 连云港市| 海安县| 玛沁县| 儋州市| 怀远县| 温泉县| 龙海市| 瑞丽市| 惠安县| 巴南区| 五家渠市| 龙井市| 长乐市| 郓城县| 凤阳县| 赤城县| 台前县| 凉城县| 郑州市| 博罗县| 安远县| 琼结县| 沅陵县| 昆明市|