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

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

7.7.用一個(gè)復(fù)選框渲染器選擇DataGrid 列

2024-04-27 13:52:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
7.7.1. 問(wèn)題
我們需要?jiǎng)?chuàng)一個(gè)擁有一列CheckBox 的DataGrid,并且這個(gè)DataGrid 的表頭也有一個(gè)CheckBox,當(dāng)用戶點(diǎn)擊表頭的CheckBox 時(shí),這一列CheckBox 自動(dòng)被選中或取消選中,我們這里所說(shuō)的表頭就是column 的headerRenderer。
7.7.2. 解決辦法
創(chuàng)建一個(gè)類做為headerRenderer,并且在這個(gè)類里創(chuàng)建一個(gè)可以向它所在的DataGrid派發(fā)事件的方法,并且可以設(shè)置DataGrid 里所有itemRenderer 的屬性。
7.7.3. 討論
Flex 的header renderers 的創(chuàng)建與生命周期要比item renderers 復(fù)雜一些。在DataGrid 的生命周期里,任何與header 相關(guān)的動(dòng)作都會(huì)引起headerRenderer 的重建。因此你需要在外部保存DataGrid 的狀態(tài)。因此我們需要用ClassFactory。

在原文中,作者講解了關(guān)于ClassFactory 的使用,這些我們己經(jīng)在本章的第二節(jié)做過(guò)說(shuō)明,所以這里就略過(guò)。
前邊說(shuō)了很多理論,下面我們說(shuō)一下如何實(shí)現(xiàn):
我們需要在mxml 里定義一些變量:
+展開(kāi)
-ActionScript
// var to hold header renderer's state
public var selectAllFlag:Boolean;
[Bindable]
public var hr:ClassFactory;

selectAllFlag 變量,顧名思義,它用于表示是不是所有行都被選中了。hr 變量,是DataGridColumn 的hearerRenderer,并且被標(biāo)記為[Bindable]。接下來(lái)要做的就是在mxml的creationComplete 方法里為hr 初始化:
+展開(kāi)
-ActionScript
hr = new ClassFactory(CenteredCheckBoxHeaderRenderer);
hr.properties = {stateHost: this , stateProperty: "selectAllFlag" };

第一行創(chuàng)建了一個(gè)ClassFactory的實(shí)例,并且把我們自定義的renderer類賦值給factory的generator屬性。在第二行賦值了兩組key-value給hr的properties屬性,renderer被創(chuàng)建后會(huì)用這兩組key-value初始化。其中stateHost的value是“this”,它代表當(dāng)前的mxml文件,stateProperty的value是我們?cè)谇斑叾x好的變量“selectAllFlag”的變量名。

下邊我們看一下,如何為DataGridColumn指定剛剛創(chuàng)建的ClassFactory實(shí)例。
+展開(kāi)
-XML
<mx:DataGridColumn width="30sortable="falsedataField="addToCartheaderRenderer="{hr}"
itemRenderer="CenteredCheckBoxItemRenderer" />
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贺兰县| 永新县| 新竹市| 金寨县| 辽宁省| 尉犁县| 安图县| 叙永县| 桂阳县| 和田县| 德江县| 安图县| 颍上县| 台州市| 三明市| 南川市| 右玉县| 茂名市| 禄丰县| 普洱| 沁源县| 黄梅县| 方城县| 阜康市| 敦煌市| 新龙县| 新营市| 孙吴县| 邹城市| 永定县| 湖北省| 增城市| 阜新市| 黎川县| 池州市| 阳朔县| 沂水县| 渝北区| 卫辉市| 沁水县| 黔西|