我有两个问题,其中第二个问题只是一个问题,因为它是修复第一个问题的可能方法!Flex AdvancedDataGrid多个单元格选择高亮没有完全清除
我正在开发一个Flex 4.1应用程序,使用Spark主题:我无法更改这些;晕是不是一种选择。
它提供了从单个按键中用单个字符填充AdvancedDataGrid的多个选定单元的功能。因此,用户使用Shift键选择其单元格,命中H(例如),并看到所有单元格都用H更新,而不使用itemEditor,而是通过grid keyDown事件。然后他们点击其他地方,选择应该清除。
但是,可见选择未完全清除,并且新着色的单元格不会全部从其所选颜色改变。
在下面,我可以验证选择已清除:mygrid.selectedCells为空。之后的所有行为指向网格的某种显示故障:单元格不再被选中,但它们看起来就像它们一样。
的按键在选定细胞后:
后,点击鼠标即可清除选择:
注意交替列:这始终是它发生的方式。
这是使用默认的itemRenderer。它仍然发生在一个非常基本的自定义itemRenderer中,但是我没有深入了解这条道路,因为有一个复杂因素,我无法让itemRenderer中的标签识别backgroundAlpha,因此'selected'背景几乎看不见,看起来很糟糕。我在某处读到这是Spark的一个问题,如果我切换回默认的渲染器,一切都很好。那么......除了这个选择颜色故障。
这里是它的外观与自定义呈现:
如果我失去了一些东西很明显,这里的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来修复选择故障。
感激地收到任何帮助。
太棒了。这个项目暂时搁置,所以我会在下周尝试。 – tridian 2010-12-14 10:08:20