Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   itemRenderer и columns в DataGrid (http://www.flasher.ru/forum/showthread.php?t=172604)

AntonSurkont 13.12.2011 19:52

itemRenderer и columns в DataGrid
 
Здравствуйте уважаемые программисты.
У меня проблемка с DataGrid-ом, из-за него приложение не загружается.
DataGrid такой:
Код:

<s:DataGrid itemRenderer="com.es.effectiveclient.MVC.view.items.BookList_ItemRenderer"
        width="100%" height="100%" dataProvider="{booksModel.books}" top="10" left="10">
  <s:columns>
    <s:ArrayList>
      <s:GridColumn dataField="name"/>
      <s:GridColumn dataField="year"/>
      <s:GridColumn dataField="pages_number"/>
      <s:GridColumn dataField="can_take"/>
    </s:ArrayList>
  </s:columns>
</s:DataGrid>

Причем если убрать columns или itemRenderer, то все работает.
Так работает
Код:

<s:DataGrid itemRenderer="com.es.effectiveclient.MVC.view.items.BookList_ItemRenderer"
        width="100%" height="100%" dataProvider="{booksModel.books}" top="10" left="10">
</s:DataGrid>

и так работает
Код:

<s:DataGrid
        width="100%" height="100%" dataProvider="{booksModel.books}" top="10" left="10">
  <s:columns>
    <s:ArrayList>
      <s:GridColumn dataField="name"/>
      <s:GridColumn dataField="year"/>
      <s:GridColumn dataField="pages_number"/>
      <s:GridColumn dataField="can_take"/>
    </s:ArrayList>
  </s:columns>
</s:DataGrid>

Код itemRenderer-ра такой
Код:

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
  clipAndEnableScrolling="true">
<fx:Script><![CDATA[
override public function prepare(hasBeenRecycled:Boolean):void {
  if (data[column.dataField] != null) {
    lblData.text = data[column.dataField]
  }
}
]]></fx:Script>
<s:Label id="lblData" top="20" left="7" text="book"/>
</s:GridItemRenderer>

dataProvider="{booksModel.books}" этот массив сначала пустой, а потом подгружается, если массив задать статически т.е.
Код:

<fx:Declarations><s:ArrayCollection id="arr">
<s:DataItem name="Name book 2" publish_house="Publish House 2" year="2010" pages_number="268" can_take="false"/>
<s:DataItem name="Name book 3" publish_house="Publish House 3" year="2008" pages_number="845" can_take="false"/>
<s:DataItem name="Name book 4" publish_house="Publish House 4" year="2008" pages_number="395" can_take="true"/>
<s:DataItem name="Name book 5" publish_house="Publish House 5" year="2009" pages_number="348" can_take="true"/>
</s:ArrayCollection></fx:Declarations>

то все работает.

Подскажите плиз как с этим разобраться. Заранее благодарен.

alatar 13.12.2011 20:19

Цитата:

У меня проблемка с DataGrid-ом, из-за него приложение не загружается.
Это не описание проблемы. Где сообщение об ошибке?
Цитата:

Код itemRenderer-ра такой
Сначала надо проверить, что data != null

AntonSurkont 14.12.2011 11:25

Цитата:

Сначала надо проверить, что data != null
Это помогло, спасибо.


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

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