Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Неизвестный dataProvider после сортировки в DataGrid (http://www.flasher.ru/forum/showthread.php?t=106372)

zlatko 10.01.2008 12:27

Неизвестный dataProvider после сортировки в DataGrid
 
Сортирую кликом по хидеру датагрид. После етого трейс свойства dataProvider пустой...:rolleyes: Как мне работать(insert,edit,delete) с dataProvider после сортировки ?

etc 10.01.2008 12:42

Код в студию.

zlatko 10.01.2008 13:00

Если не сортирую список и исполняю следующую строчку то печатается весь список. Если посортирую и исполню то консоль во флекс билдере полностью очищается и ничего не печатается :confused:

Код:

trace(someDataGrid.dataProvider.toString());
Инициализируется dataProvider следующим образом :

Код:

someDataGrid.dataProvider = someXML.children();

etc 10.01.2008 13:03

Это две строчки кода, а не весь код.

Sneg 10.01.2008 17:10

В качестве dataProvider'a при работе с XML лучше всего использовать XMLListCollection или HierarhialData в зависимости от компонента, они гарантируют нормальную сортировку. А вы судя по всему используете обычный XMLList

FlexOkeks 10.01.2008 19:16

Цитата:

Сообщение от Sneg
В качестве dataProvider'a при работе с XML лучше всего использовать XMLListCollection или HierarhialData в зависимости от компонента, они гарантируют нормальную сортировку. А вы судя по всему используете обычный XMLList

А разве dataProvider использует обычный XMLList? Из хелпа:
Цитата:

If you set the dataProvider property to an Array, it will be converted to an ArrayCollection. If you set the property to an XML object, it will be converted into an XMLListCollection with only one item. If you set the property to an XMLList, it will be converted to an XMLListCollection.

Sneg 10.01.2008 23:01

В самом деле - не заметил :) Тогда без более подробного кода не обойтись.

zlatko 11.01.2008 19:12

Cоздал мальнький проект для демонстрации...итак :

Код:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
      <![CDATA[
        private function onShowDP():void
        {
          trace(dg.dataProvider);
        }
      ]]>
    </mx:Script>
   
    <mx:XMLList id="ctls">
      <oc id="98" hwn="0xada" seg="1"/>
      <oc id="111" hwn="0x003d" seg="6"/>
    </mx:XMLList>

    <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{ctls}">
        <mx:columns>
            <mx:DataGridColumn dataField="@id" headerText="Id"/>
            <mx:DataGridColumn dataField="@hwn" headerText="Number"/>
            <mx:DataGridColumn dataField="@seg" headerText="Segment"/>
        </mx:columns>
    </mx:DataGrid>
   
    <mx:Button label="show DP" click="onShowDP()"/>   
 
</mx:Application>

Если отсортировать датагрид и нажать кнопку "show DP" трейс ничего не напечатает(!)...Но, как только я вместо этого XMLList подставлю следующий(также нужно позабирать собачки в полях dataField) трейс будет его печатать и после сортировки...

Код:

<mx:XMLList id="ctls">
  <oc>
    <id>98</id>
    <hwn>0xada</hwn>
    <seg>1</seg>
  </oc>
  <oc>
    <id>111</id>
    <hwn>0x003d</hwn>
    <seg>6</seg>
  </oc>     
</mx:XMLList>

Что я недочитал в документации ? :umnik2:

п.с. Flex 3 Beta 3

Sneg 11.01.2008 19:27

Надо делать:
Код:

trace(dg.dataProvider.toXMLString());

zlatko 11.01.2008 19:45

Спасибо !


Часовой пояс GMT +4, время: 02:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.