I dont realy get your question, to understand you correct. You have a visual webpart that you made and are calling two ascx from within it?
or
you have a webpart that contains two vistaul webparts?
code is Procedural in c#.
either way, you need to call the first one in the call stack.... meaning your code as anyother code goes from the top first and makes its way down the code stack, having your first call should be the first webpart or ascx and then the second webpart or ascx.
just as an example in my create child controls i want to call two ascx i would do the following:
protected override void CreateChildControls()
{
//called first
UserControl control = (UserControl)Page.LoadControl(@"/_controltemplates/callMeFirst.ascx");
//called second
UserControl control2 = (UserControl)Page.LoadControl(@"/_controltemplates/callMeSecond.ascx");
}
so above shows that the first line of code is executed first and then the second. Displaying is different because you can just add it in any order like so:
protected override void CreateChildControls()
{
//called first
UserControl control = (UserControl)Page.LoadControl(@"/_controltemplates/callMeFirst.ascx");
//called second
UserControl control2 = (UserControl)Page.LoadControl(@"/_controltemplates/callMeSecond.ascx");
//add first
Controls.Add(control);
//add second
Controls.Add(control2);
or
//add first
Controls.Add(control2);
//add second
Controls.Add(control);
}
as you can see above the first controls to be added to the page is control and then control2 , you can mix and match control2 first and then control will show in that order but getting the ascx in control is called first befor control2.
this consept is the same for anything else be it in webpart or not :) so in your code (webpart) you need to look at what visual webpart is being called first, rather than looking in the visual webpart itself :) (debug webpart not visual webpart as it will show you what is calling the visual webpart)
hope it helps :)