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

首頁 > 網站 > WEB開發 > 正文

7.7.用一個復選框渲染器選擇DataGrid 列

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

在原文中,作者講解了關于ClassFactory 的使用,這些我們己經在本章的第二節做過說明,所以這里就略過。
前邊說了很多理論,下面我們說一下如何實現:
我們需要在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" };

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

下邊我們看一下,如何為DataGridColumn指定剛剛創建的ClassFactory實例。
+展開
-XML
<mx:DataGridColumn width="30sortable="falsedataField="addToCartheaderRenderer="{hr}"
itemRenderer="CenteredCheckBoxItemRenderer" />
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳区| 金塔县| 台安县| 高陵县| 平舆县| 土默特左旗| 昌平区| 星子县| 福贡县| 正宁县| 洪雅县| 阳春市| 礼泉县| 汝城县| 饶平县| 通道| 达孜县| 宜兴市| 连南| 双辽市| 施秉县| 安徽省| 称多县| 社旗县| 托克逊县| 龙口市| 昌宁县| 花莲县| 珲春市| 新化县| 大姚县| 曲阜市| 湘潭县| 汉源县| 昌邑市| 博湖县| 普格县| 岢岚县| 那曲县| 伊通| 铅山县|