Hybrid View

    Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Ext JS Premium Member
    Join Date
    Nov 2010
    Posts
    14
    Vote Rating
    -1
    mniland is an unknown quantity at this point

      0  

    Default [FIXED-EXTJSIV-973] Infinity scroll when totalCount < pageSize

    [FIXED-EXTJSIV-973] Infinity scroll when totalCount < pageSize


    In Beta 2, if the number of records in an infinite-scrolling grid is less than the page size - say, 35 total records with page size 50 - and the size of the grid is larger than the visible area in the browser so that a scrollbar is generated, the first visible set of records will load, but the grid will go blank when we attempt to scroll. We fixed this with a small change to onElScroll in PagingScroller:

    Old code:

    Code:
        onElScroll: function(e, t) {
    ...
            me.syncScroll = true;
            // end of request was past what the total is, grab from the end back a pageSize
            if (requestEnd > totalCount - 1) {
                this.cancelLoad();
                if (store.rangeSatisfied(totalCount - pageSize, totalCount - 1)) {
                    me.syncScroll = true;
                }
                store.guaranteeRange(totalCount - pageSize, totalCount - 1);
            // Out of range, need to reset the current data set
            } else if (visibleStart < guaranteedStart || visibleEnd > guaranteedEnd) {
                if (store.rangeSatisfied(requestStart, requestEnd)) {
                    this.cancelLoad();
                    store.guaranteeRange(requestStart, requestEnd);
                } else {
                    store.mask();
                    me.attemptLoad(requestStart, requestEnd);
                }
                // dont sync the scroll view immediately, sync after the range has been guaranteed
                me.syncScroll = false;
            } else if (activePrefetch && visibleStart < (guaranteedStart + numFromEdge) && prevPage > 0) {
                me.syncScroll = true;
                store.prefetchPage(prevPage);
            } else if (activePrefetch && visibleEnd > (guaranteedEnd - numFromEdge) && nextPage < lastPage) {
                me.syncScroll = true;
                store.prefetchPage(nextPage);
            }
    New code:


    Code:
            onElScroll: function(e, t) {
    ...
                me.syncScroll = true;
                if (totalCount >= pageSize) {
                    // end of request was past what the total is, grab from the end back a pageSize
                    if (requestEnd > totalCount - 1) {
                        this.cancelLoad();
                        if (store.rangeSatisfied(totalCount - pageSize, totalCount - 1)) {
                            me.syncScroll = true;
                        }
                        store.guaranteeRange(totalCount - pageSize, totalCount - 1);
                        // Out of range, need to reset the current data set
                    } else if (visibleStart < guaranteedStart || visibleEnd > guaranteedEnd) {
                        if (store.rangeSatisfied(requestStart, requestEnd)) {
                            this.cancelLoad();
                            store.guaranteeRange(requestStart, requestEnd);
                        } else {
                            store.mask();
                            me.attemptLoad(requestStart, requestEnd);
                        }
                        // dont sync the scroll view immediately, sync after the range has been guaranteed
                        me.syncScroll = false;
                    } else if (activePrefetch && visibleStart < (guaranteedStart + numFromEdge) && prevPage > 0) {
                        me.syncScroll = true;
                        store.prefetchPage(prevPage);
                    } else if (activePrefetch && visibleEnd > (guaranteedEnd - numFromEdge) && nextPage < lastPage) {
                        me.syncScroll = true;
                        store.prefetchPage(nextPage);
                    }
                }

  2. #2
    Ext JS Premium Member
    Join Date
    Nov 2010
    Posts
    14
    Vote Rating
    -1
    mniland is an unknown quantity at this point

      0  

    Default


    (I meant to post this in the Bugs forum.)

  3. #3
    Sencha - Architect Dev Team aconran's Avatar
    Join Date
    Mar 2007
    Posts
    9,399
    Vote Rating
    128
    aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold

      0  

    Default


    Thanks for the bug report, I've moved the thread and opened a new ticket for this EXTJSIV-973.
    Aaron Conran
    @aconran
    Sencha Architect Development Team

  4. #4
    Sencha - Architect Dev Team aconran's Avatar
    Join Date
    Mar 2007
    Posts
    9,399
    Vote Rating
    128
    aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold aconran is a splendid one to behold

      0  

    Default


    This will be fixed in the next release.
    Aaron Conran
    @aconran
    Sencha Architect Development Team

Similar Threads

  1. Replies: 1
    Last Post: 12 Apr 2011, 1:59 PM
  2. Infinity scroll fails when totalCount < pageSize
    By mniland in forum Ext: Discussion
    Replies: 1
    Last Post: 12 Apr 2011, 12:38 PM
  3. Replies: 7
    Last Post: 8 Apr 2011, 9:43 AM
  4. [FIXED-EXTJSIV-194] Grid Scroll Issues
    By James Goddard in forum Ext:Bugs
    Replies: 2
    Last Post: 1 Apr 2011, 11:05 AM
  5. How and where do apply the new Infinity Scroll feature?
    By SebTardif in forum Ext: Discussion
    Replies: 8
    Last Post: 15 Mar 2011, 6:44 AM

Thread Participants: 1