Как использовать js: Datagrid для динамического обновления провайдера данных - PullRequest
0 голосов
/ 24 сентября 2019

js: dataGrid показывает пробелы вместо данных.

Компонент dataGrid:

<j:VGroup id="VGroupContainer">
                <j:Button text="Load Data" width="200" height="60" click="OpenData(event)"/>

                <js:DataGrid  rowHeight="40" y="200" visible="true" id="dataGrid"  width="330">

                    <js:columns>
                            <js:DataGridColumn label="Name" dataField="Name" id="nameField" columnWidth="130"/>
                            <js:DataGridColumn label="SO" dataField="SOname" id="soField" columnWidth="100"/>
                            <js:DataGridColumn label="Email" dataField="Email" id="emailField" columnWidth="100"/>
                    </js:columns>

                </js:DataGrid>
</j:VGroup>

Функция для динамического обновления данных.В качестве контекста я буду использовать вызовы HTTPservice для извлечения данных с сервера и соответствующего обновления сетки данных.В целях тестирования я использую следующее:

protected function OpenData(event:MouseEvent):void
        {


                    var obj:Object=new Object();

                    obj.Name = "record 1"
                    obj.SOname = "SO1"
                    obj.Email = "email 1"
                    var obj2:Object=new Object();

                    obj2.Name = "record 2"
                    obj2.SOname = "SO2"
                    obj2.Email = "email 2"
                    var obj3:Object=new Object();

                    obj3.Name = "record 3"
                    obj3.SOname = "SO3"
                    obj3.Email = "email 3"

                    arrData.addItem(obj)
                    arrData.addItem(obj2)
                    arrData.addItem(obj3)

              dataGrid.dataProvider = arrData;

        }

Всякий раз, когда я устанавливаю значение для dataProvider, dataGrid, кажется, имеет правильные строки, но данные не отображаются.Вы можете щелкнуть и выбрать строку, но визуально ни одна из ячеек не появится:

После обновления Dataprovider

Кто-нибудь работал с Datagrids в Apache Royale в последнее время?Мне интересно, если я даже использую правильный компонент.Я мигрирую из s: Datagrids и никогда не сталкивался с этой проблемой.

1 Ответ

0 голосов
/ 25 сентября 2019

Вы используете базовую реализацию, которая разработана, чтобы быть очень легкой, но упускает некоторые функции, входящие в состав встроенной реализации flex.

Если вы переходите от spark, это может быть прощеиспользовать компоненты эмуляции искры [1].

Если вы хотите сохранить легкую реализацию и добавить функциональность по мере продвижения, вы можете просто добавить уведомитель об изменениях [2].

[1] https://github.com/apache/royale-asjs/blob/develop/examples/mxroyale/tourdeflexmodules/src/spark/controls/DataGridExample.mxml

[2] https://github.com/apache/royale-asjs/blob/9db99c214d6ca9c300a11489d2421cf6920e9de4/examples/royale/ListExample/src/main/royale/MyInitialView.mxml#L178

...