LL should use GetSchemaRow first in the designer to improve speed

Also it would be much faster to always use GetSchemaRow first. Yes it is nice to see the data, but this would be sufficent to read it when the user also wants it (Preview)



Suppose you have a complex view to add to LL. Accessing the view causes a large table with a bunch of grouping to be queried from the DB and this may take over 20secs. Other tables may react fast… If you ask for the schema first there is no delay. And the designer would launch much faster. The user has to wait when he asks for a Preview, but this is OK. :wink:



This also could be accomplished, if it would be possible to differeniate between a “layout define phase” and a “need real data phase”. In this case the data provider can return fast “dummy data” (with GetSchemaRow) in the “layout define phase”.

Actually, this is already possible. The ListLabel component has a (hidden) property “UseTableSchemaForDesignMode”. We’ve originally added it for special internal cases which is why it doesn’t show up in IntelliSense. However you’re completely free to use it and it will not be removed:

LL.UseTableSchemaForDesignMode = true;

Starting with SP 22.001, this also works for data sources that do not implement GetSchemaRow - it just flips the order in which LL tries to retrieve data now.