簡體   English   中英

無法在Flex DataGrid中動態更改列寬

[英]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()應該很好。

干杯

關鍵是在設置寬度之前先將horizo​​ntalScrollPolicy =“ on”設置好。 請參閱DataGrid怪癖中的固定行寬Flex 3 DataGrid列寬問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM