Flex: обновление dataProvider для datagrid приводит к тому, что свойство visible для datagrid имеет значение TRUE - PullRequest
0 голосов
/ 28 января 2011

Я замечаю такое поведение на сетке данных Flex 4, где я устанавливаю видимое для Gird значение FALSE. Когда я обновляю данные dataProvider сетки, например, обновляю свойство объекта в коллекции, сетка снова станет VISIBLE.

это поведение по умолчанию для птицы данных в Flex? Как мне это отключить?

1 Ответ

1 голос
/ 29 января 2011

Я только что написал быстрый пример:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
               creationComplete="application1_creationCompleteHandler(event)"
               >

    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;

            [Bindable]
            public var myData:ArrayCollection = new ArrayCollection;

            protected function application1_creationCompleteHandler(event:FlexEvent):void
            {
                var u:User;
                for (var i:int=0; i < 5; i++)
                {
                    u = new User();
                    u.name = "custom "+int(Math.random()*10);
                    u.phone = "0987 "+int(Math.random()*10);
                    myData.addItem(u);
                }

            }

            protected function button1_clickHandler(event:MouseEvent):void
            {
                myData.getItemAt(0).name = "test";
            }

        ]]>
    </fx:Script>
    <s:layout>
        <s:VerticalLayout />
    </s:layout>
    <mx:DataGrid dataProvider="{myData}" visible="false">
        <mx:columns>
            <mx:DataGridColumn dataField="name" />
            <mx:DataGridColumn dataField="phone" />
        </mx:columns>
    </mx:DataGrid>
    <s:Button label="Change data" click="button1_clickHandler(event)" />    
</s:Application>

И видимость DataGrid не изменилась, поэтому в вашем коде явно что-то не так.Не могли бы вы опубликовать часть своего кода?

...