2015-05-07 3 views
0

У меня есть данные (скажем, например, миллион строк), которые будут отображаться в datagrid в мобильном приложении. Я пытаюсь выяснить способ, по которому, как только свиток достигнет конца страницы, т.е. последняя строка в сетке снова запрашивает сервер для следующей группы записей. Прокрутить Событие в MX datagrid (http://blog.tremend.ro/2009/03/02/flex-live-scroll-datagrid/) делает это с легкостью, но его нет в искровом datagrid. Я хочу, чтобы это было сделано с искровым datagrid.Прокрутка Spark Datagrid

Как я могу достичь этого. Требовать помощь .. !!

Thanks

+0

Я дал ответ, и он работает. –

ответ

0

Я быстро скомпилировал пример, который работает. Вы можете добавить слушателя ScrollBar из DataGrid dg как:

dg.scroller.verticalScrollBar.addEventListener(Event.CHANGE, list_verticalScrollBar_change); 
private function list_verticalScrollBar_change(evt:Event):void { 
      var vsb:VScrollBar = evt.currentTarget as VScrollBar; 
      // Now you can check for scroll position. 
} 

Полный код как:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" 
       creationComplete="application1_creationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      import mx.events.FlexEvent; 

      import spark.components.VScrollBar; 

      protected function application1_creationCompleteHandler(event:FlexEvent):void 
      { 
       dg.scroller.verticalScrollBar.addEventListener(Event.CHANGE, list_verticalScrollBar_change) 
      } 

      private function list_verticalScrollBar_change(evt:Event):void { 
       var vsb:VScrollBar = evt.currentTarget as VScrollBar; 
       if(dg.grid.contentHeight == dg.grid.layout.verticalScrollPosition+dg.grid.height) { 
        Alert.show("Making service call"); 
        // make some service call. 
       } 
      } 

     ]]> 
    </fx:Script> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <s:DataGrid id="dg" width="100%" height="100"> 
     <s:dataProvider> 
      <s:ArrayList> 
       <fx:Object age="24" sex="f" name="Susan" joinDate="{new Date(2007, 5, 15)}" /> 
       <fx:Object age="36" sex="f" name="Ashley" joinDate="{new Date(1998, 7, 20)}" /> 
       <fx:Object age="24" sex="f" name="Jennifer" joinDate="{new Date(2001, 3, 24)}" /> 
       <fx:Object age="19" sex="f" name="Emma" joinDate="{new Date(2002, 3, 24)}" /> 
       <fx:Object age="44" sex="f" name="Carol" joinDate="{new Date(1999, 9, 16)}" /> 
       <fx:Object age="28" sex="m" name="Peter" joinDate="{new Date(2005, 3, 12)}" /> 
       <fx:Object age="35" sex="m" name="Mike" joinDate="{new Date(2008, 10, 10)}" /> 
       <fx:Object age="26" sex="m" name="Dave" joinDate="{new Date(2008, 10, 10)}" /> 
       <fx:Object age="44" sex="m" name="William" joinDate="{new Date(2004, 9, 16)}" /> 
       <fx:Object age="24" sex="m" name="Sean" joinDate="{new Date(2006, 3, 24)}" /> 
      </s:ArrayList> 
     </s:dataProvider> 
    </s:DataGrid> 
</s:Application>