Problem with displaying data in the Perspective table component

Hello,

I am using a table component to display a lot of data - about 600 scrolling rows. So far I've been using this as a rigid binding, where each row creates a binding and in it a script that processes the data and adds to the row.

The following solution required creating a row each time and adding it to the table and binding.

So I created one script that manages the data of the entire table and returns a json, which the table then interprets and displays.

However, there is a problem with this script. When I scroll through the rows and the data is refreshed the table shakes. When I stop scrolling it manages to jump up and fix itself in a certain position. The worst thing is that when I get to the end of the table the data jumps up and I can't see the last few rows, when I scroll to the bottom it goes down for a while only to come back up again a few rows ahead.

It looks as if filling in the new JSON is causing some strange action in the table. Has anyone had this problem or know anything? How can this be prevented?

Greetings

There are several ways to go about it. Fist off i need some more information.

  1. Where is the data you are trying to display?
    A) Stored in tags
    B) Stored in a database
    C) ect...

  2. If you sort data the same every time ie: pkid desc then it helps avoid data moving around on you.

I also prefer to use dataset return types as it seems to be less prone to errors.

  1. How are your table.props.colums setup. This makes all the difference.

Please provide some more of the structure and the code examples so I can be of more help. I have made some tables that have custom acripts that run to reformat entire columns of data. These tables pull over 10k rows of information and 30 columns without glitching the component. So 600 rows should be a piece of cake.

Cheers,

Did you try toggling the virtualized property?

@Jarith_Fry2, welcome to the forum. See the FAQ regarding signatures in posts.

You give hope for a better performance of this table.

The way it is built is that I have a folder with UDT's each of which maps the data to a single row. I read the entire folder of UDT's with a script and process it to give the infomation properties e.g. orange for values <90%. I then create a table which is returned to the component as above.

My understanding is that overwriting the new JSON with these values causes the table in the browser to render again, which will be difficult to eliminate, especially for a large number of rows.

If you have any advice I would welcome it.

As for virtualisation, I've already tried it, virtualisation improves the performenace because it doesn't load everything at once, but it doesn't affect the table's shaking.

This. If you want the table to be stable, don't change its data. At all.

Instead, include your UDT tagpath in your data (not necessarily shown) and use cell render views. The view(s) embedded in a cell receives automatic parameters for the specific cell data and for the entire row of data. Which can then be used to indirect bind to the live data. And from which you can also update the cell styling.

1 Like