国产探花免费观看_亚洲丰满少妇自慰呻吟_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" />
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂宁市| 上犹县| 库伦旗| 中江县| 周口市| 易门县| 南昌市| 即墨市| 陕西省| 宁陵县| 彩票| 苏尼特左旗| 彭水| 吉林省| 南木林县| 蓝山县| 溧阳市| 柯坪县| 利津县| 石屏县| 花垣县| 德格县| 大埔区| 卫辉市| 昌宁县| 六盘水市| 长垣县| 鄱阳县| 莱芜市| 海城市| 霍邱县| 绍兴市| 法库县| 巢湖市| 和顺县| 年辖:市辖区| 乌苏市| 汾阳市| 鸡东县| 通化市| 曲阳县|