Flex: ошибка при вертикальной прокрутке в сетке данных - PullRequest
0 голосов
/ 10 июня 2010

у меня есть этот код

<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>

идентификатор столбца данных с именем "sum" создает изображения и текст, предоставленный загруженным XML, но я получаю сообщение об ошибке при использовании прокрутки сетки данных.и изображения смещены, и все данные, такие как dateCreated и dateModified, перемешаны или что-то в этом роде.

, пожалуйста, помогите мне с этим .. спасибо

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Если вы все еще ищете ответ, добавьте его в свой код.

1)

protected function dgtempListDG_scrollHandler(event:ScrollEvent):void
{
    // TODO Auto-generated method stub

    tempListDG.invalidateDisplayList();
}

2)

scroll = "dgtempListDG_scrollHandler(event)"

Добавьте это в mx:datagrid.

0 голосов
/ 10 июня 2010

помните, что средства визуализации элементов перерабатываются и используются повторно, поэтому не следует использовать события creationCompelte (если видны только 5 средств визуализации элементов, создаются только 7, а затем они используются повторно, но они создаются только один раз, поэтому создание завершается только один раз)

Мне нравится использовать события dataChange, они работают при создании и каждый раз, когда изменяются данные itemRenderer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...