Rendering TTIWDBAdvWebGrid

Dear Sir

I have a problem with the display of TTIWDBAdvWebGrid under very specific circumstances.
 
On my form I have an IWTabControl with three pages.
The first page has a number IWDBcontrols and displays OK.
Same with the 2nd page.
The third page also has some IWDBcontrols including a IWDBNavigator which displays OK, but this page also includes another tabcontrol with two pages. On each of these pages are four TTIWDBAdvWebGrids showing child-data for the table controlled by the mentioned IWDBNavigator.
However when I first select the third page, the grids are not rendered with any data, or headers incl. Controller.caption. If I then use the navigator to move the next (parent) record all the grids now render.
 
How can I get a rendering on first entry?
 

In continuation of above mail I will add that moving one of the grids in question out of the tab control and placing it directly on the "third page" gives a correct rendering with data, captions etc.

 
Yours sincerely

What version of IntraWeb are you using? In some IntraWeb versions there were some issues with TIWTabControl. Also, is there any async behavior involved? Did you try to set RenderInvisibleControls = true on IntraWeb form level? 

I'm using Delphi 2010 Ent with Intraweb 10.0.23
TMS Intraweb 4.3.1.0 of 12 Oct 2010<?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

I do have Async behaviour on the form but only in terms of OnAsyncClick event for two buttons. These buttons do however reside outside of the tab control(s).

 

Even if that RenderInvisibleControls should not be relevant, as per above, I have tried setting this, but it didn't help.

 

I'm however not completely in the clear as of how you consequently do this where you have nested controls, maybe you know.

Do you have to set the RenderInvisibleControls for all containers in the hierarchy chain or is it sufficient just setting it for the immediate parent container?

 

regards

Thomas Waldorff

I have found a workaround.

 
I code in the main tabs OnChange event:
 
if MainTab.ActivePage=2 then    //the page containing the sub-tab
begin
    GridInSubtab1.Invalidate;
    GridInSubtab2.Invalidate;
    GridInSubtab3.Invalidate;
    GridInSubtab4.Invalidate;
end;
 
I would still however like you to respond to my questions, as this invalidation should not really be required. Or???
 
regards
Thomas Waldorff
 

We have been able to reproduce this but we have not yet found a solution. It's also unclear whether this is an issue in IntraWeb itself or in our component. It rather looks like this is an issue in IntraWeb but this requires deeper investigation.