LiveCode LessonsData GridLiveCode Data Grid Working With Data Grid FormsHow Can I Speed Up Drawing When "fixed row height" is False?

How Can I Speed Up Drawing When "fixed row height" is False?

When you set the dgProp["fixed row height"] property of a Data Grid to false the Data Grid must draw all records in order to determine the total height. That means that FillInData and LayoutControl are called for every record in the Data Grid. This can be time intensive depending on the amount of data.

This lesson will show you a technique that can speed up the calculation of the total height of the data in situations where the rows can only have heights of known values.

CalculateFormattedHeight

When the Data Grid loops through the data to calculate the height the message CalculateFormattedHeight will be sent to the Row Template. If your Row Behavior handles this message then the Data Grid will use the integer value that you return rather than calling FillInData and LayoutControl.

Here is an example that uses CalculateFormattedHeight to return the height of a row based on whether or not the row is expanded. Just place the CalculateFormattedHeight message in your Row Behavior script.

on CalculateFormattedHeight pDataArray
   if pDataArray["expanded"] then
      return 74
   else
      return 20
   end if
end CalculateFormattedHeight
on FillInData pDataArray
	...
end FillInData

0 Comments

Add your comment

E-Mail me when someone replies to this comment