我在我的數據網格中使用了自定義項目渲染器,並且需要根據是否存在任何值的負值來使按鈕可見或不可見在渲染器中。所以我想在第一個渲染器關閉時將flag設置爲false,如果有任何負值,則將其設置爲true,並在最後檢查標誌的值。我知道每次在渲染器實例中更改數據時,我都可以派發一個dataChange事件,但是我想知道是否無論如何我可以知道它們何時完成? 謝謝!事件一旦所有的自定義項目渲染器已被創建/設置
1
A
回答
2
有沒有這樣的事件。
與任何其他Flex組件一樣,渲染器在創建後會派發CREATION_COMPLETE
。 ItemRenderers
通常會被回收(同一個對象會被分配新的數據進行渲染),因此偵聽CREATION_COMPLETE
是不夠的,除非您禁用回收。
對於Spark List
組件,您可以通過在佈局類上設置useVirtualLayout=false
來禁用回收。我不確定Spark DataGrid
類是否支持此功能。 MX DataGrid可能有其他方法來執行此操作。
但是,禁用回收可能會影響性能。我認爲你的想法瓦特/ DATA_CHANGE
事件是最好的解決辦法:
- 確定數據的初始狀態(即:是否有任何負值)中渲染
- ,使用DATA_CHANGE事件(或只是覆蓋渲染器的設置器
data
屬性)以瞭解數據何時發生變化 - 當數據更改時,分派將冒泡的自定義事件類。此事件有一個屬性,告訴您該值是否爲負值。
- 由於來自渲染器的自定義事件會向網格起泡,因此您可以在網格上添加一個偵聽器來處理來自所有渲染器的更改。
1
你應該看看RendererExistenceEvents。您應該能夠根據您的列表中包含多少項目或至少應該同時查看多少項目來確定它們的創建時間。
相關問題
- 1. 在Flex中創建自定義項目渲染器
- 2. flex,AdvancedDataGrid,自定義項目渲染器
- 3. 自定義渲染CheckBoxList項目在LI上設置類別
- 4. Highcharts:自定義渲染器的選項設置
- 5. 在柔性從項目渲染調用自定義事件4
- 6. 項目渲染器的創建complite
- 7. 自定義控件不渲染事件
- 8. Flex 4.5 Mobile - 在自定義項目渲染器中設置StyleableTextField的寬度
- 9. ReactNative FlatList一次渲染所有項目?
- 10. Rails自定義渲染器
- 11. Jlist自定義渲染器
- 12. 柔性樹定製項目渲染器子項創建
- 13. 重新測量列表中的自定義項目渲染器
- 14. 無法選擇自定義項目渲染器(flex)
- 15. 在Spark項目渲染器中使用自定義狀態
- 16. Flex 4.6 - 自定義項目渲染器 - HTML格式文本
- 17. 執行郵件一旦所有項目已迭代
- 18. Rails的渲染自定義選項
- 19. 不刷新自定義渲染器Xamarin創建地圖
- 20. Jtree渲染器設置自定義圖標不工作
- 21. 使用Xamarin.Forms自定義渲染器時轉發事件/命令
- 22. 創建自定義事件
- 23. 設置自定義事件偵聽器
- 24. jQuery:創建一個自定義事件
- 25. 已創建iOS項目定義
- 26. 問題渲染自定義「菜單項」
- 27. GWT中的自定義渲染器
- 28. 自定義渲染的Zend_Navigation
- 29. 自定義Zend_Form_Element_Radio的渲染
- 30. 如何爲項目設置創建自定義依賴項軟件?
感謝您的回覆。我主要困惑於我如何知道何時使用第一個ItemRenderer,以及何時完成了網格中的最後一個ItemRenderer。有什麼辦法可以做到嗎? – iman453 2012-07-12 17:38:57
你不能。每個渲染器都會將創建完成一次(創建時),並且數據在每次**數據更改時更改**。既然你給網格的初始數據,你知道如果任何值最初是負面的。之後,您必須使用數據更改事件來查找如上所述的負值。 – 2012-07-12 17:46:41
對不起,我認爲我沒有很好地解釋我的問題:) 我需要能夠判斷每次我的網格中的一組單元格是否呈現負值。所以說第一次他們都是renderered,其中一個值是負值,所以我將一個標誌設置爲True。當用戶下一次在網格中向下滾動時,我希望它是一個乾淨的石板,所以我想再次將該標誌設置爲false,並且如果任何渲染器獲得負值,我會將其設置爲true。但我想在每個「集合」的渲染開始時沒有真正的方法將標誌設置爲假。感謝您的幫助:) – iman453 2012-07-12 18:06:05