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

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

7.4.創(chuàng)建一個(gè)簡(jiǎn)單的組件作為渲染器和編輯器

2024-04-27 13:52:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
7.4.1. 問(wèn)題
你需要建立一個(gè)即可以用于item editor 又可以用于item renderer 的組件,并且item editor 會(huì)收到一個(gè)數(shù)組,我們希望這個(gè)數(shù)組能以combo box 的形式顯示出來(lái)。
7.4.2. 解決辦法
建立一個(gè)己經(jīng)實(shí)現(xiàn)了IDropInListItemRenderer 的組件,并在它里邊定義兩個(gè)states即狀態(tài),一個(gè)狀態(tài)用于顯示editor 另一個(gè)用于顯示renderer。當(dāng)data 發(fā)生變化時(shí),即在editor 狀態(tài)用戶做了修改操作,系統(tǒng)將會(huì)派發(fā)一個(gè)ITEM_EDIT_END 事件到這個(gè)組件的父組件,父組件收到這個(gè)事件后,保存修改的數(shù)據(jù)到dataProvider 里。
7.4.3. 討論
把一個(gè)item renderer 改裝成一個(gè)item editor 很容易,在List 這個(gè)類里有一個(gè)rendererIsEditor 屬性,如果這個(gè)屬性為true,當(dāng)itemRenderer 被雙擊時(shí),便進(jìn)入編輯狀態(tài),List 并沒(méi)有建一個(gè)item editor 而是使用itemRenderer 監(jiān)聽并捕獲了edit 的事件。

原文中提到DataGridColumn 也有rendererIsEditor 屬性,這是對(duì)的,但原文中說(shuō)DataGridColumn 是繼承自List,我看了這兩個(gè)類,它們之間并沒(méi)有這層關(guān)系,它們各自定義了rendererIsEditor 屬性。

當(dāng)用戶完成修改后即更新dataProvider,關(guān)健在于修改完成后renderer 要派發(fā)一個(gè)ITEM_EDIT_END 事件。在下邊的例子中使用DataGridEvent 傳遞被修改單元格所在行數(shù)和列數(shù),從而確定需要修改dataProvider 中哪些數(shù)據(jù)。DataGridEvent 對(duì)象是在setNewData方法中建立并派發(fā)的。setNewData 方法是在ComboBox 的值發(fā)生變化時(shí)被調(diào)用。
+展開
-ActionScript
private function setNewData():void {
_data.selected = selectCB.selectedItem;
dispatchEvent(new DataGridEvent(DataGridEvent.ITEM_EDIT_END,truetrue, _listData.columnIndex,'selected', _listData.rowIndex));
}

在接下來(lái)的例子中,這組數(shù)據(jù)將要用于dataGrid 的顯示,下面這組數(shù)據(jù)相當(dāng)于在item renderer 里得到的data,它有幾個(gè)基本屬性:name、age、appearance,還有一個(gè)數(shù)組extras,還有一個(gè)selected 屬性,用于標(biāo)記xtras 數(shù)組中哪個(gè)元素被選中了,這些數(shù)據(jù)都是可以修改的。
+展開
-ActionScript
{name:"Todd Anderson", age:31, appearance:"Intimidating", extras:["bar""foo","baz"], selected:"bar"}

象這樣的數(shù)據(jù)是很常見的。extras 屬性中的數(shù)據(jù)是專門用做ComboBox 數(shù)據(jù)源的,selected 是專門用于記錄ComboBox 選中項(xiàng)的。但是一般情況下,DataGrid 的renderer 都只是傳一個(gè)簡(jiǎn)單的數(shù)據(jù)。如果DataGridColumn 沒(méi)有明確指定dataField 屬性,整個(gè)data對(duì)象被傳入renderer。正如下邊的樣子。(原文在這里的描述很容易讓人誤解,其實(shí)不管你有沒(méi)有指定dataField 屬性,都會(huì)把整個(gè)data 傳給renderer。)
+展開
-XML
<mx:DataGrid dataProvider="{DataHolder.genericCollectionTwo}"
width="450itemEditEnd="checkEditedItem(event)id="dg">

<mx:columns>
<mx:DataGridColumn dataField="age"/>
<mx:DataGridColumn dataField="appearance"/>
<mx:DataGridColumn
itemRenderer="oreilly.cookbook.ComboBoxRenderer"
editable="truerendererIsEditor="true"/>

</mx:columns>
</mx:DataGrid>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 华池县| 海林市| 涞源县| 巴南区| 怀来县| 措美县| 巴林右旗| 库尔勒市| 宽甸| 吉隆县| 阿拉善左旗| 攀枝花市| 梧州市| 蕲春县| 丰台区| 英山县| 津南区| 开阳县| 淮滨县| 八宿县| 南阳市| 岚皋县| 汉阴县| 抚顺市| 百色市| 蒙阴县| 罗平县| 府谷县| 青铜峡市| 民丰县| 宁德市| 长春市| 邵阳县| 秭归县| 河北省| 陇川县| 化州市| 锡林郭勒盟| 若羌县| 宝山区|