Loading ...
Sorry, an error occurred while loading the content.

Re: [flexcoders] datagrid not rendering after dataprovider update

Expand Messages
  • Wouter Schreuders
    I ve made a simple test case in which I can replicate the problem. If anyone feels like having a look you can download it here:
    Message 1 of 12 , Apr 20 12:54 AM
    View Source
    • 0 Attachment
      I've made a simple test case in which I can replicate the problem. If anyone feels like having a look you can download it here:




      On 4 April 2012 23:12, Alex Harui <aharui@...> wrote:
       

      Do you have a simple test case?




      On 4/4/12 8:43 AM, "Wouter Schreuders" <wschreuders@...> wrote:


       
       
         

      spark DG

      On 4 April 2012 17:28, Alex Harui <aharui@...> wrote:
       
       
       
         

      MX or Spark DG?





      On 4/4/12 12:05 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...> > wrote:


       
       
         

      I thought that that may be the case, so I removed all my custom itemrenderers but the problem remains, I've also noticed that the problem only occurs after I have entered a date range, if I stick with the standard date range then problem doesn't occur.

      On 3 April 2012 22:23, Alex Harui <aharui@... <http://aharui@...> > wrote:
       
       
       
         

      That sounds more like an issue with custom renderers.




      On 4/3/12 4:47 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...>  <http://wschreuders@...> > wrote:


       
       
         

      Hi All

      I've run into a rendering problem with the datagrid.

      I have a datagrid that a user can search using a date range, furthermore the user can also search using keywords. I do this by first looking at the date range and applying a filter to the array of objects based on the dates. Then I make of a copy of that arraycollection and assign the arraycollection which binds to my datagrid to that collection.

      The problem is that when the user selects a date range and I apply the filter, the datagrid content disappears. The scrollbar on the side updates though and if I scroll down then the content appears and renders correctly. I've tried the following post refresh commands but none of them solve the problem.

      (datagrid.dataProvider as ArrayCollection).refresh();
      datagrid .invalidateSkinState();
      datagrid .invalidateDisplayList();
      datagrid .validateNow();

      Here's the code where I get the date range.

      var dateFilteredArray:Array = _transactions.source.filter(
      function (item:Transaction, index:int, array:Array):Boolean
      {
      if(Date.parse(item.displayDate) < dateRangeComponent.startDate.valueOf() || Date.parse(item.displayDate) > dateRangeComponent.endDate.valueOf())
      return false
      else
      return true //item is inside date range
      }
      );
      _dateFilteredCollection = new ArrayCollection(dateFilteredArray);

      Anyone run into this before?
       
         



      --
      Alex Harui
      Flex SDK Team
      Adobe Systems, Inc.
      http://blogs.adobe.com/aharui


    • Alex Harui
      What are the steps to reproduce the problem? On 4/20/12 12:54 AM, Wouter Schreuders wrote: I ve made a simple test case in which I
      Message 2 of 12 , Apr 25 11:37 PM
      View Source
      • 0 Attachment
        Re: [flexcoders] datagrid not rendering after dataprovider update What are the steps to reproduce the problem?


        On 4/20/12 12:54 AM, "Wouter Schreuders" <wschreuders@...> wrote:


         
         
           

        I've made a simple test case in which I can replicate the problem. If anyone feels like having a look you can download it here:

        http://www.filefactory.com/file/6oz4m4wrkx31/n/DataGridRender_zip



        On 4 April 2012 23:12, Alex Harui <aharui@...> wrote:
         
         
         
           

        Do you have a simple test case?




        On 4/4/12 8:43 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...> > wrote:


         
         
           

        spark DG

        On 4 April 2012 17:28, Alex Harui <aharui@... <http://aharui@...> > wrote:
         
         
         
           

        MX or Spark DG?





        On 4/4/12 12:05 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...>  <http://wschreuders@...> > wrote:


         
         
           

        I thought that that may be the case, so I removed all my custom itemrenderers but the problem remains, I've also noticed that the problem only occurs after I have entered a date range, if I stick with the standard date range then problem doesn't occur.

        On 3 April 2012 22:23, Alex Harui <aharui@... <http://aharui@...>  <http://aharui@...> > wrote:
         
         
         
           

        That sounds more like an issue with custom renderers.




        On 4/3/12 4:47 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...>  <http://wschreuders@...>  <http://wschreuders@...> > wrote:


         
         
           

        Hi All

        I've run into a rendering problem with the datagrid.

        I have a datagrid that a user can search using a date range, furthermore the user can also search using keywords. I do this by first looking at the date range and applying a filter to the array of objects based on the dates. Then I make of a copy of that arraycollection and assign the arraycollection which binds to my datagrid to that collection.

        The problem is that when the user selects a date range and I apply the filter, the datagrid content disappears. The scrollbar on the side updates though and if I scroll down then the content appears and renders correctly. I've tried the following post refresh commands but none of them solve the problem.

        (datagrid.dataProvider as ArrayCollection).refresh();
        datagrid .invalidateSkinState();
        datagrid .invalidateDisplayList();
        datagrid .validateNow();

        Here's the code where I get the date range.

        var dateFilteredArray:Array = _transactions.source.filter(
        function (item:Transaction, index:int, array:Array):Boolean
        {
        if(Date.parse(item.displayDate) < dateRangeComponent.startDate.valueOf() || Date.parse(item.displayDate) > dateRangeComponent.endDate.valueOf())
        return false
        else
        return true //item is inside date range
        }
        );
        _dateFilteredCollection = new ArrayCollection(dateFilteredArray);

        Anyone run into this before?
         
           



        --
        Alex Harui
        Flex SDK Team
        Adobe Systems, Inc.
        http://blogs.adobe.com/aharui
      • Wouter Schreuders
        Hi Alex To replicate the problem. - launch the app (it will populate the datagrid with values) - choose a different date in the date picker on the top left -
        Message 3 of 12 , Apr 26 1:00 AM
        View Source
        • 0 Attachment
          Hi Alex

          To replicate the problem.

          - launch the app (it will populate the datagrid with values)

          - choose a different date in the date picker on the top left

          - the dataprovider will get updated but the datagrid doesn't update properly, instead it just remains blank

          - use the scroller on the right-hand side to scroll through the datagrid, the datagrid will then render properly

          Thanks

          Wouter

          On 26 April 2012 08:37, Alex Harui <aharui@...> wrote:
           

          What are the steps to reproduce the problem?




          On 4/20/12 12:54 AM, "Wouter Schreuders" <wschreuders@...> wrote:


           
           
             

          I've made a simple test case in which I can replicate the problem. If anyone feels like having a look you can download it here:

          http://www.filefactory.com/file/6oz4m4wrkx31/n/DataGridRender_zip



          On 4 April 2012 23:12, Alex Harui <aharui@...> wrote:
           
           
           
             

          Do you have a simple test case?




          On 4/4/12 8:43 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...> > wrote:


           
           
             

          spark DG


          On 4 April 2012 17:28, Alex Harui <aharui@... <http://aharui@...> > wrote:
           
           
           
             

          MX or Spark DG?






          On 4/4/12 12:05 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...>  <http://wschreuders@...> > wrote:


           
           
             

          I thought that that may be the case, so I removed all my custom itemrenderers but the problem remains, I've also noticed that the problem only occurs after I have entered a date range, if I stick with the standard date range then problem doesn't occur.

          On 3 April 2012 22:23, Alex Harui <aharui@... <http://aharui@...>  <http://aharui@...> > wrote:
           
           
           
             

          That sounds more like an issue with custom renderers.




          On 4/3/12 4:47 AM, "Wouter Schreuders" <wschreuders@... <http://wschreuders@...>  <http://wschreuders@...>  <http://wschreuders@...> > wrote:


           
           
             

          Hi All

          I've run into a rendering problem with the datagrid.

          I have a datagrid that a user can search using a date range, furthermore the user can also search using keywords. I do this by first looking at the date range and applying a filter to the array of objects based on the dates. Then I make of a copy of that arraycollection and assign the arraycollection which binds to my datagrid to that collection.

          The problem is that when the user selects a date range and I apply the filter, the datagrid content disappears. The scrollbar on the side updates though and if I scroll down then the content appears and renders correctly. I've tried the following post refresh commands but none of them solve the problem.

          (datagrid.dataProvider as ArrayCollection).refresh();
          datagrid .invalidateSkinState();
          datagrid .invalidateDisplayList();
          datagrid .validateNow();

          Here's the code where I get the date range.

          var dateFilteredArray:Array = _transactions.source.filter(
          function (item:Transaction, index:int, array:Array):Boolean
          {
          if(Date.parse(item.displayDate) < dateRangeComponent.startDate.valueOf() || Date.parse(item.displayDate) > dateRangeComponent.endDate.valueOf())
          return false
          else
          return true //item is inside date range
          }
          );
          _dateFilteredCollection = new ArrayCollection(dateFilteredArray);

          Anyone run into this before?
           
             



          --
          Alex Harui
          Flex SDK Team
          Adobe Systems, Inc.
          http://blogs.adobe.com/aharui


        • Alex H
          Looks like there are a couple of bugs in there. File the bugs against Adobe if you have an Adobe support contract, otherwise file against Apache Flex. I used
          Message 4 of 12 , Apr 27 11:34 PM
          View Source
          • 0 Attachment
            Looks like there are a couple of bugs in there. File the bugs against Adobe if you have an Adobe support contract, otherwise file against Apache Flex.

            I used the following hack in applyDateFilter that appears to work. If you don't change the scrollposition, it doesn't cause a full update of the screen.


            var oldvsp:Number = dgTransactions.grid.verticalScrollPosition;
            _dateFilteredCollection = new ArrayCollection(dateFilteredArray);
            applySort();
            applySearch();
            dgTransactions.grid.verticalScrollPosition = oldvsp + .1;
            dgTransactions.grid.verticalScrollPosition = oldvsp;

            -Alex



            --- In flexcoders@yahoogroups.com, Wouter Schreuders <wschreuders@...> wrote:
            >
            > Hi Alex
            >
            > To replicate the problem.
            >
            > - launch the app (it will populate the datagrid with values)
            >
            > - choose a different date in the date picker on the top left
            >
            > - the dataprovider will get updated but the datagrid doesn't update
            > properly, instead it just remains blank
            >
            > - use the scroller on the right-hand side to scroll through the datagrid,
            > the datagrid will then render properly
            >
            > Thanks
            >
            > Wouter
            >
            > On 26 April 2012 08:37, Alex Harui <aharui@...> wrote:
            >
            > > **
            > >
            > >
            > > What are the steps to reproduce the problem?
            > >
            > >
            > >
            > > On 4/20/12 12:54 AM, "Wouter Schreuders" <wschreuders@...> wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > I've made a simple test case in which I can replicate the problem. If
            > > anyone feels like having a look you can download it here:
            > >
            > > http://www.filefactory.com/file/6oz4m4wrkx31/n/DataGridRender_zip
            > >
            > >
            > >
            > > On 4 April 2012 23:12, Alex Harui <aharui@...> wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > Do you have a simple test case?
            > >
            > >
            > >
            > >
            > > On 4/4/12 8:43 AM, "Wouter Schreuders" <wschreuders@... <
            > > http://wschreuders@...> > wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > spark DG
            > >
            > >
            > > On 4 April 2012 17:28, Alex Harui <aharui@... <
            > > http://aharui@...> > wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > MX or Spark DG?
            > >
            > >
            > >
            > >
            > >
            > >
            > > On 4/4/12 12:05 AM, "Wouter Schreuders" <wschreuders@... <
            > > http://wschreuders@...> <http://wschreuders@...> > wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > I thought that that may be the case, so I removed all my custom
            > > itemrenderers but the problem remains, I've also noticed that the problem
            > > only occurs after I have entered a date range, if I stick with the standard
            > > date range then problem doesn't occur.
            > >
            > > On 3 April 2012 22:23, Alex Harui <aharui@... <
            > > http://aharui@...> <http://aharui@...> > wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > That sounds more like an issue with custom renderers.
            > >
            > >
            > >
            > >
            > > On 4/3/12 4:47 AM, "Wouter Schreuders" <wschreuders@... <
            > > http://wschreuders@...> <http://wschreuders@...> <
            > > http://wschreuders@...> > wrote:
            > >
            > >
            > >
            > >
            > >
            > >
            > > Hi All
            > >
            > > I've run into a rendering problem with the datagrid.
            > >
            > > I have a datagrid that a user can search using a date range, furthermore
            > > the user can also search using keywords. I do this by first looking at the
            > > date range and applying a filter to the array of objects based on the
            > > dates. Then I make of a copy of that arraycollection and assign the
            > > arraycollection which binds to my datagrid to that collection.
            > >
            > > The problem is that when the user selects a date range and I apply the
            > > filter, the datagrid content disappears. The scrollbar on the side updates
            > > though and if I scroll down then the content appears and renders correctly.
            > > I've tried the following post refresh commands but none of them solve the
            > > problem.
            > >
            > > (datagrid.dataProvider as ArrayCollection).refresh();
            > > datagrid .invalidateSkinState();
            > > datagrid .invalidateDisplayList();
            > > datagrid .validateNow();
            > >
            > > Here's the code where I get the date range.
            > >
            > > var dateFilteredArray:Array = _transactions.source.filter(
            > > function (item:Transaction, index:int, array:Array):Boolean
            > > {
            > > if(Date.parse(item.displayDate) < dateRangeComponent.startDate.valueOf()
            > > || Date.parse(item.displayDate) > dateRangeComponent.endDate.valueOf())
            > > return false
            > > else
            > > return true //item is inside date range
            > > }
            > > );
            > > _dateFilteredCollection = new ArrayCollection(dateFilteredArray);
            > >
            > > Anyone run into this before?
            > >
            > >
            > >
            > >
            > >
            > > --
            > > Alex Harui
            > > Flex SDK Team
            > > Adobe Systems, Inc.
            > > http://blogs.adobe.com/aharui
            > >
            > >
            > >
            >
          • Wouter Schreuders
            Thanks Alex Your workaround works perfectly, I ve filed the bug here : http://bugs.adobe.com/jira/browse/SDK-32172 Thanks again Wouter
            Message 5 of 12 , May 3, 2012
            View Source
            • 0 Attachment
              Thanks Alex

              Your workaround works perfectly, 


              Thanks again

              Wouter

              On 28 April 2012 08:34, Alex H <aharui@...> wrote:
               

              Looks like there are a couple of bugs in there. File the bugs against Adobe if you have an Adobe support contract, otherwise file against Apache Flex.

              I used the following hack in applyDateFilter that appears to work. If you don't change the scrollposition, it doesn't cause a full update of the screen.

              var oldvsp:Number = dgTransactions.grid.verticalScrollPosition;
              _dateFilteredCollection = new ArrayCollection(dateFilteredArray);
              applySort();
              applySearch();
              dgTransactions.grid.verticalScrollPosition = oldvsp + .1;
              dgTransactions.grid.verticalScrollPosition = oldvsp;

              -Alex



              --- In flexcoders@yahoogroups.com, Wouter Schreuders <wschreuders@...> wrote:
              >
              > Hi Alex
              >
              > To replicate the problem.
              >
              > - launch the app (it will populate the datagrid with values)
              >
              > - choose a different date in the date picker on the top left
              >
              > - the dataprovider will get updated but the datagrid doesn't update
              > properly, instead it just remains blank
              >
              > - use the scroller on the right-hand side to scroll through the datagrid,
              > the datagrid will then render properly
              >
              > Thanks
              >
              > Wouter
              >
              > On 26 April 2012 08:37, Alex Harui <aharui@...> wrote:
              >
              > > **

              > >
              > >
              > > What are the steps to reproduce the problem?
              > >
              > >
              > >
              > > On 4/20/12 12:54 AM, "Wouter Schreuders" <wschreuders@...> wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > I've made a simple test case in which I can replicate the problem. If
              > > anyone feels like having a look you can download it here:
              > >
              > > http://www.filefactory.com/file/6oz4m4wrkx31/n/DataGridRender_zip
              > >
              > >
              > >
              > > On 4 April 2012 23:12, Alex Harui <aharui@...> wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > Do you have a simple test case?
              > >
              > >
              > >
              > >
              > > On 4/4/12 8:43 AM, "Wouter Schreuders" <wschreuders@... <

              > > http://wschreuders@...> > wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > spark DG
              > >
              > >
              > > On 4 April 2012 17:28, Alex Harui <aharui@... <

              > > http://aharui@...> > wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > MX or Spark DG?
              > >
              > >
              > >
              > >
              > >
              > >
              > > On 4/4/12 12:05 AM, "Wouter Schreuders" <wschreuders@... <

              > > http://wschreuders@...> <http://wschreuders@...> > wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > I thought that that may be the case, so I removed all my custom
              > > itemrenderers but the problem remains, I've also noticed that the problem
              > > only occurs after I have entered a date range, if I stick with the standard
              > > date range then problem doesn't occur.
              > >
              > > On 3 April 2012 22:23, Alex Harui <aharui@... <

              > > http://aharui@...> <http://aharui@...> > wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > That sounds more like an issue with custom renderers.
              > >
              > >
              > >
              > >
              > > On 4/3/12 4:47 AM, "Wouter Schreuders" <wschreuders@... <
              > > http://wschreuders@...> <http://wschreuders@...> <

              > > http://wschreuders@...> > wrote:
              > >
              > >
              > >
              > >
              > >
              > >
              > > Hi All
              > >
              > > I've run into a rendering problem with the datagrid.
              > >
              > > I have a datagrid that a user can search using a date range, furthermore
              > > the user can also search using keywords. I do this by first looking at the
              > > date range and applying a filter to the array of objects based on the
              > > dates. Then I make of a copy of that arraycollection and assign the
              > > arraycollection which binds to my datagrid to that collection.
              > >
              > > The problem is that when the user selects a date range and I apply the
              > > filter, the datagrid content disappears. The scrollbar on the side updates
              > > though and if I scroll down then the content appears and renders correctly.
              > > I've tried the following post refresh commands but none of them solve the
              > > problem.
              > >
              > > (datagrid.dataProvider as ArrayCollection).refresh();
              > > datagrid .invalidateSkinState();
              > > datagrid .invalidateDisplayList();
              > > datagrid .validateNow();
              > >
              > > Here's the code where I get the date range.
              > >
              > > var dateFilteredArray:Array = _transactions.source.filter(
              > > function (item:Transaction, index:int, array:Array):Boolean
              > > {
              > > if(Date.parse(item.displayDate) < dateRangeComponent.startDate.valueOf()
              > > || Date.parse(item.displayDate) > dateRangeComponent.endDate.valueOf())
              > > return false
              > > else
              > > return true //item is inside date range
              > > }
              > > );
              > > _dateFilteredCollection = new ArrayCollection(dateFilteredArray);
              > >
              > > Anyone run into this before?
              > >
              > >
              > >
              > >
              > >
              > > --
              > > Alex Harui
              > > Flex SDK Team
              > > Adobe Systems, Inc.
              > > http://blogs.adobe.com/aharui
              > >
              > >
              > >
              >


            Your message has been successfully submitted and would be delivered to recipients shortly.