2010-09-23 60 views
0

我有兩個問題,其中第二個問題只是一個問題,因爲它是修復第一個問題的可能方法!Flex AdvancedDataGrid多個單元格選擇高亮沒有完全清除

我正在開發一個Flex 4.1應用程序,使用Spark主題:我無法更改這些;暈是不是一種選擇。

它提供了從單個按鍵中用單個字符填充AdvancedDataGrid的多個選定單元的功能。因此,用戶使用Shift鍵選擇其單元格,命中H(例如),並看到所有單元格都用H更新,而不使用itemEditor,而是通過grid keyDown事件。然後他們點擊其他地方,選擇應該清除。

但是,可見選擇未完全清除,並且新着色的單元格不會全部從其所選顏色改變。

在下面,我可以驗證選擇已清除:mygrid.selectedCells爲空。之後的所有行爲指向網格的某種顯示故障:單元格不再被選中,但它們看起來就像它們一樣。

的按鍵在選定細胞後:

alt text

後,點擊鼠標即可清除選擇:

alt text

注意交替列:這始終是它發生的方式。

這是使用默認的itemRenderer。它仍然發生在一個非常基本的自定義itemRenderer中,但是我沒有深入瞭解這條道路,因爲有一個複雜因素,我無法讓itemRenderer中的標籤識別backgroundAlpha,因此'selected'背景幾乎看不見,看起來很糟糕。我在某處讀到這是Spark的一個問題,如果我切換回默認的渲染器,一切都很好。那麼......除了這個選擇顏色故障。

這裏是它的外觀與自定義呈現:

alt text

如果我失去了一些東西很明顯,這裏的itemRenderer我想:

<?xml version="1.0" encoding="utf-8"?> 
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" 
          focusEnabled="true" autoDrawBackground="true" 
          > 
    <s:layout> 
     <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> 
    </s:layout> 
    <s:Label id="lblData" text="{listData.label}" backgroundAlpha="0"/> 
</s:MXAdvancedDataGridItemRenderer> 

因此,在總結:我需要什麼是解決多選毛刺的一種方法;項目渲染器問題只是一個問題,如果我需要一個自定義itemRenderer來修復選擇故障。

感激地收到任何幫助。

回答

2

這似乎是由Flashplayer 10.1引起的。你可以在這裏找到細節:

ADG selection bug

也有張貼在評論的解決方法。

+0

太棒了。這個項目暫時擱置,所以我會在下週嘗試。 – tridian 2010-12-14 10:08:20