Apache flex Flex:在DataGrid中垂直滚动时出错
我有这个密码Apache flex Flex:在DataGrid中垂直滚动时出错,apache-flex,datagrid,Apache Flex,Datagrid,我有这个密码 <mx:DataGrid id="tempListDG" itemDoubleClick="doubleClickHandler(event)" width="100%" height="100%" rowHeight="110" draggableColumns="false" sortableColumns="false" allowMultipleSelection="false"> <mx:columns&
<mx:DataGrid id="tempListDG" itemDoubleClick="doubleClickHandler(event)" width="100%" height="100%" rowHeight="110"
draggableColumns="false" sortableColumns="false" allowMultipleSelection="false">
<mx:columns>
<mx:DataGridColumn id="chkSel" headerText=" " width="15" sortable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalScrollPolicy="off" verticalScrollPolicy="off" paddingLeft="3">
<mx:Script>
<![CDATA[
]]>
</mx:Script>
<mx:CheckBox name="chkSel" selected="false" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn id="sum" dataField="@summary" headerText="Summary Description" width="280" >
<mx:itemRenderer>
<mx:Component>
<mx:HBox name="thumbs" creationComplete="setThumbnailImage(event)" verticalAlign="top" verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
import mx.controls.Text;
import com.azaaza.containers.HBox;
import com.azaaza.controls.Image;
import com.hwakin.tavi.model.ModelLocator;
import mx.controls.DataGrid;
private function setThumbnailImage(e:Event):void{
var dg:DataGrid = DataGrid(e.target.parent.parent);
var dCounter:int = TemplateOpenPanel(dg.parent.parent).dCount;
if (dCounter+1 > XMLList(dg.dataProvider).length()){
dg.validateDisplayList();
return;
}
img.load(ModelLocator.getInstance().StringToBitmap(XMLList(dg.dataProvider)[dCounter].@thumbStr));
img.width = 80;
img.height = 110;
txt.htmlText = XMLList(dg.dataProvider)[dCounter].@summary;
txt.maxHeight = 110;
dCounter++;
TemplateOpenPanel(dg.parent.parent).dCount = dCounter;
}
]]>
</mx:Script>
<mx:Image id="img">
</mx:Image>
<mx:Text id="txt">
</mx:Text>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="@dateCreated" headerText="Date Created" width="100" />
<mx:DataGridColumn dataField="@dateModified" headerText="Date Modified" width="100"/>
<mx:DataGridColumn dataField="@guid" headerText="guid" visible="false"/>
<mx:DataGridColumn dataField="@fileName" headerText="File Name" visible="false"/>
<mx:DataGridColumn dataField="@tempXml" headerText="tempXml" visible="false"/>
</mx:columns>
</mx:DataGrid>
XMLList(dg.dataProvider).length(){
dg.validateDisplayList();
返回;
}
load(ModelLocator.getInstance().StringToBitmap(XMLList(dg.dataProvider)[dCounter].@thumbStr));
img.width=80;
img.height=110;
txt.htmlText=xmlslist(dg.dataProvider)[dCounter]。@summary;
txt.maxHeight=110;
dCounter++;
TemplateOpenPanel(dg.parent.parent).dCount=dCounter;
}
]]>
名为“sum”的datagridcolumn id创建由我加载的XML提供的图像和文本
但是我在使用数据网格的滚动时出错了。图像会被取消对齐,所有的数据,比如dateCreated和dateModified都会被洗牌或者其他什么
请帮我拿这个。。感谢请记住,项目渲染器是回收和重用的,因此您不应该使用CreationComplete事件(如果只有5个项目渲染器可见,则仅创建7个项目渲染器,然后重复使用,但它们仅创建一次,因此创建完成仅触发一次)
我喜欢使用dataChange事件,它们在创建时起作用,每次itemRenderer的数据更改时都起作用。如果您仍在寻找答案,请将此添加到代码中 (一) (二) 将此添加到
mx:datagrid
中
protected function dgtempListDG_scrollHandler(event:ScrollEvent):void
{
// TODO Auto-generated method stub
tempListDG.invalidateDisplayList();
}
scroll = "dgtempListDG_scrollHandler(event)"