[英]Unable to change the column width dynamically in flex datagrid
非常令人沮喪。 我正在使用包含數據網格的單例類(彈出窗口,這意味着它不會忘記最后使用的變量)。 我使各種列可見/不可見,並根據從數據庫調用接收到的數據設置寬度和標題。 一切工作正常,除了當我在更改列寬的前后放置斷點時,根本看不到datagrid寬度的變化! 相反,我看到一些值與datagrid列的寬度完全不同步! 但是,由於它是一個單例類,因此下次我調用此彈出窗口時,會看到在上次調用中設置的寬度。
我一定在弄亂setWidth()函數(這是我的自定義函數,它會在操作腳本中更改datagrid的寬度)。 我應該在什么地方調用此函數? 我在creationComplete,show和dataprovider的設置器中嘗試過。 無濟於事...
我一直將水平滾動策略設置為“關閉”(將其完全打亂)。
如果我執行datagrid.validateNow(),則無濟於事! 還有,如果在更改前后放置斷點,為什么我看不到寬度更改立即反映出來。 有人請告訴我我在這里做錯了什么。
謝謝。
首先,您要表明自己在這里可能出了什么問題。
1)當組件可見時更新寬度=>不變
2)當您關閉彈出窗口並重新打開它時,這沒關系,這也意味着該項目已被重新渲染,而不是第一次。 這意味着您確實必須嘗試自己觸發它。
這是有關Flex組件生命周期的一些有用鏈接。 這些應該可以幫助您確定要調用和/或重寫的方法。
http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/
http://www.slideshare.net/rjowen/adobe-flex-component-lifecycle-presentation
此外,永遠不要直接調用validateNow(),而應使用無效方法。
我猜在這種情況下,您需要觸發組件的測量,因此調用invalidateSize()應該很好。
干杯
關鍵是在設置寬度之前先將horizontalScrollPolicy =“ on”設置好。 請參閱DataGrid怪癖中的固定行寬或Flex 3 DataGrid列寬問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.