2010-09-23 59 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