我有一个填充了超过 1000 个数据集的网格。一列使用自定义 itemRenderer,用于显示外键的值。
所有未滚动显示的数据集都显示正确的信息。但是当涉及到滚动时,一些数据集会在 itemRenderer 中显示错误的值。据我了解,这是因为itemRenderers的重用。
但是,尽管重用可能很好,但结果不会是显示错误的信息。那么我该如何摆脱这个问题呢?
编辑:我已经设法摆脱了这个问题,但无论如何我都会发布一些代码来指出我的计划:
<?xml version="1.0" encoding="utf-8"?>
<mx:Script>
<![CDATA[
private var dataAccess : DataAccess = DataAccess.getInstance();
private var foreign : ArrayCollection = new ArrayCollection();
private function onCreationComplete() : void
{
dataAccess.service.getForeignDatasets.addEventListener("result", onGetForeignDatasets);
dataAccess.service.getForeignDatasets();
}
private function onGetForeignDatasets(event : ResultEvent) : void
{
foreign = event.result as ArrayCollection;
preSelect();
}
//gets the entry from the foreign entity which matches
//the foreign key in this.data
private function preSelect() : void
{
for each(var obj : Object in foreign)
{
if(obj.id == data.foreignKey))
{
value.text = obj.name;
return;
}
}
value.text = "";
}
private function onDataChange() : void
{
preSelect();
}
]]>
</mx:Script>
我留下了所有不必要的代码......
上面的代码有效并解决了显示错误数据的问题。
实现此功能的任何其他想法?