Данные для столбцов во Flex - PullRequest
0 голосов
/ 13 июля 2009
<local:CheckBoxDataGrid id="dg" 
                    allowMultipleSelection="true"   x="118" y="151" width="557">
        <local:columns>
            <mx:DataGridColumn dataField="firstName" headerText="Select" width="50" sortable="false" itemRenderer="CheckBoxRenderer" > 
            </mx:DataGridColumn>
            <mx:DataGridColumn id="userID" headerText="User ID" />
            <mx:DataGridColumn dataField="userlevel" editable="true" headerText="Role" />
            <mx:DataGridColumn id="email" headerText="Email" />
        </local:columns>
    </local:CheckBoxDataGrid>

private function getUs(data:Object):void{
         var appSes:ArrayCollection = new ArrayCollection(data.result);
            dg.dataProvider = appSes;
            }

Я получаю значения как ArrayCollection, но когда я связываю их с моей сеткой данных, я не получаю никаких значений .... хотя объекты, возвращаемые из PHP, в порядке.

Ответы [ 2 ]

1 голос
/ 13 июля 2009

Вы пробовали отладку? Я бы предложил запустить отладку с точкой останова сразу после установки var appSes и проверить эту переменную, чтобы убедиться, что ArrayCollection правильно создается с данными результатов e Service.

Если ArrayCollection создается правильно, затем убедитесь, что имена dataField правильно совпадают с данными в ArrayCollection - они чувствительны к регистру. Попробуйте удалить все столбцы из DataGrid. Если ваша ArrayCollection действительна, DataGrid автоматически создаст столбцы с именами dataField в ArrayCollection в качестве заголовков столбцов:

ArrayCollection:
    {firstName: "Joe", userID: 1, userlevel: 3, email: "joe@foo.com"},
    {firstName: "Mary", userID: 2, userlevel: 4, email: "mary@foo.com"},
    {firstName: "Bob", userID: 3, userlevel: 2, email: "bob@foo.com"}

Will display as the following if you do not specify columns:

firstName           userId        userLevel    email
------------------- ------------- ------------ ----------------------------
Joe                 1             3            joe@foo.com
Mary                2             4            mary@foo.com
Bob                 3             2            bob@foo.com

Надеюсь, это поможет!

0 голосов
/ 13 июля 2009

Моей первой рекомендацией было бы проверить это без загрузки вещей через PHP. Скопируйте данные в локальную коллекцию ArrayCollection и назначьте ее исходя из этого.

Вы также можете инициализировать свойство поставщика данных (это иногда помогает, несмотря на то, что оно не предполагается до):

<local:CheckBoxDataGrid id="dg" dataProvider="{ myArrayCollection }"

...

[Bindable]
private var myArrayCollection:ArrayCollection

...

private function getUs(data:Object):void
{
     myArrayCollection = new ArrayCollection(data.result);
     trace( myArrayCollection ); // Just a sanity check.

Дайте мне знать, если это поможет.

...