Показать сообщение отдельно
Старый 13.12.2011, 19:52
AntonSurkont вне форума Посмотреть профиль Отправить личное сообщение для AntonSurkont Найти все сообщения от AntonSurkont
  № 1  
Ответить с цитированием
AntonSurkont
 
Аватар для AntonSurkont

Регистрация: Dec 2009
Сообщений: 122
По умолчанию 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>
то все работает.

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