Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    ListGrid rows disappearing on reload

    Framework Versions
    GWT Version : 2.7.0
    SmartGWT Version : 5.1p
    SmartGWT Build Date : 10/01/2018 09:08
    SmartGWT Edition : Pro Edition
    I'm getting reports of a strange issue whereby a ListGrid is losing its rows.

    The issue occurs upon reloading a ListGrid with > 100 rows in it (ListGrid data populated by external data source). Upon reload the ListGrid is empty. I have managed to replicate the issue by creating a ListGrid within a TabSet, I have populated it with 300 users of which 80 are displaying, I edit a user and go back to the ListGrid it reloads then the data disappears.

    (I apologise for the 58 second .gif our debug environments are lightning fast)
    Click image for larger version

Name:	Animation (1).gif
Views:	195
Size:	619.6 KB
ID:	253541

    I don't know whether this is relevant, but I notice this in the SmartGwt console when the issue occurs:
    I am getting this warning
    Code:
    WARN:GridBody:isc_ListGridImpl_7_body:row heights not yet available; returning all zeroes
    Also, I might add that it only ever really occurs when I'm deep in the results; if I were looking at the first 80 results, then it probably won't happen, but if I scroll down it is very likely it will happen.
    Has anybody had a similar issue and can point me in the right direction?



    #2
    This sounds like most likely your server is simply not returning the requested data, or returning incorrect startRow and endRow values. At least, the first few minutes of troubleshooting should be spent on this, using the RPC tab of the Developer Console.

    Comment


      #3
      It would seem that the startRow and endRow values are fine. 3 requests are made, one on initial load, another on scrolling down the ListGrid and a final one going back to the ListGrid of all the users.

      First Request ------------------------------------------------------------------------------------------------------------------------------
      SmartGWT Values : Start Row 0, End Row 75
      Our Values : Page Size 76, Start Index 0
      Response : items 76, Total 207
      First Request ------------------------------------------------------------------------------------------------------------------------------

      I then scrolled down the ListGrid

      Second Request ------------------------------------------------------------------------------------------------------------------------------
      SmartGWT Values : Start Row 76, End Row 151
      Our Values : Page Size 76, Start Index 76
      Response : items 76, Total 207
      Second Request ------------------------------------------------------------------------------------------------------------------------------

      And when reloading the list grid

      Third Request ------------------------------------------------------------------------------------------------------------------------------
      SmartGWT Values : Start Row 30, End Row 104
      Our Values : Page Size 75, Start Index 30
      Response : items 75, Total 207
      Third Request ------------------------------------------------------------------------------------------------------------------------------


      I have attached the SmartGwt log. Lines > 178 where the final request are made maybe the most telling


      Attached Files

      Comment


        #4
        After further testing, we have found that the issue only occurs in Internet Explorer
        Taking the same steps as shown above using both Internet Explorer and Google Chrome:


        ListGrid rendering properly
        Google Chrome
        Version: 67.0.3396.79

        First Request --------------------------------------------
        Page Size: 76
        Index: 0

        Second Request -------------------------------------------
        Page Size: 76
        Index: 77

        Third Request --------------------------------------------
        Page Size: 76
        Index: 44

        ListGrid not rendering properly on the third load
        Internet Explorer 11
        Version: 11.431.16299.0

        First Request --------------------------------------------
        Page Size: 76
        Index: 0

        Second Request -------------------------------------------
        Page Size: 76
        Index: 77

        Third Request --------------------------------------------
        Page Size: 75
        Index: 23

        Any help or suggestions would be much appreciated
        Isomorphic
        Last edited by LukeGarrigan; 7 Jun 2018, 13:06.

        Comment


          #5
          You're giving us very little to go on here. Have you taken basic steps like looking at whether the grid has any data if you call APIs such as getRecords()?

          It's also unclear where you're getting your page size etc values from. We recommended the RPC tab of the Developer Console, which would eliminate the possibility that you are logging one thing on the server but actually returning something else. There are a bunch of logs showing NaN rowNums towards the end, which very much suggests that bad row indices are being fed into this grid somehow.

          You should also address this warning:
          11:59:55.391:pointerup8:WARN:Log:'ignore-isc_StaticTextItem_6' is not a valid JavaScript identifier. DataSource and DataBoundComponent field names are required to be valid JavaScript identifiers, the syntax for which is specified by ECMA-262 Section 7.6. Note: The String.isValidID(string) function can be used to test whether a string is a valid identifier. This field applied to [DynamicForm ID:isc_DynamicForm_11]. This will be the last warning.
          Also, it looks like you've set up the grid so that it ends up needing 3 requests just to load the initially visible data, because your server is refusing to returning the requested rows:

          12:07:20.865:INFO:ResultSet:isc_ResultSet_2 (dataSource: userDS, created by: isc_ListGridImpl_7):Fetch request returned range 76,152 but we have subsequent 'loading' markers. Assuming client/server batch size mismatch and clearing loading markers greater than 152
          Although the ResultSet has some code to handle this, it's not actually a supported approach. You must return the requested rows. Not doing so could plausibly create issues like you're seeing.

          Comment

          Working...
          X