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

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

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

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

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

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

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

下邊我們看一下,如何為DataGridColumn指定剛剛創(chuàng)建的ClassFactory實例。
+展開
-XML
<mx:DataGridColumn width="30sortable="falsedataField="addToCartheaderRenderer="{hr}"
itemRenderer="CenteredCheckBoxItemRenderer" />
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鸡泽县| 通城县| 咸阳市| 旬邑县| 安宁市| 广德县| 彰化县| 禹城市| 平武县| 广元市| 浠水县| 黎平县| 洪雅县| 巴彦县| 黔南| 谢通门县| 育儿| 中宁县| 怀远县| 永登县| 广宁县| 连南| 南乐县| 榆社县| 申扎县| 建德市| 塔河县| 溧水县| 宜昌市| 瑞昌市| 德清县| 香格里拉县| 黔西县| 崇左市| 繁昌县| 邵阳县| 文昌市| 建始县| 浑源县| 南京市| 广西|