ThinkGeo.com    |     Documentation    |     Premium Support

Map Control inside UserControl inside Ajax TabContainer inside MasterPage

Hi,


I am having problem showing Map Control inside Ajax TabContainer.


I have Map control inside a UserControl, and that UserControl is inside a TabContainer of another UserControl. This parent UserControl is inside a Page and that page is inside a MasterPage. The Map control is not showing.


I followed the instruction from another post, to set all the containing tabs, divs, tables, forms, etc, heights to 100%.


Just to verify that it is the problem with the TabContainer. I put the Child UserControl (the one containing the Map control) outside of the TabContainer of the Parent UserControl. Then the Map is showing.


Any idea?


I am using WebEdition 5.5.



 


Hi Ching,
What kind of TabContainer are you using? I mean it comes from Asp.NET Ajax Toolkits or other companies? I tried the scenario with Asp.NET Ajax, it works with the fixed value in pixel, but its TabContainer doesn’t allow setting the width/height to 100%, I just can set the map’s width/height to 100%, it will recreate the issue, because the map is unable to get real width and height, both will be 0, maybe we can do some enhancements in the future.
The attached is the sample that I have tried. Can you take a look at it and check if there is something different? Also can you try a fixed width/height in pixel in your scenario?
Thanks,
-Johnny

 



MapWithAjaxTab.zip (14.2 KB)

Hi Johnny, 
  
 I got the Map loading. I was using the older version of AjaxControlToolkit, I think it was 3.0 something, I updated it to 3.5… 
 Now I have different problem. I have the Map on the second tab. The map is only loading the top left most tile on first load and it was zoom fit to the one tile. When I do Async postback on the different tab, then switch to the map control tab, the map is only loading the top left most tile. 
 If the map control is the active tab on first load and if I click any button on Map control tab, then the map is loading properly. 
  
 Can you see what might cause this problem? 
  
 Thanks

 Ching,


We made a workaround for you in the attachment and please have a try. 


Thanks,


Ben


 



001_Post9918.zip (130 KB)

Hi Ben,


Your solution works until I put UpdatePanel around the Map control and the button on first tab.


See the attached.


Thanks.



001_Post9918_2.zip (149 KB)

 Ching,


For your sample we need to add a client event to Button1 to change the value of isExecuted. Please add the following code to WebUserControl2’s Page_Load method:



 if (!IsPostBack)
{
Button1.Attributes.Add("onclick", "javascript:isExecuted=false;");
}

Thanks,


Ben



Hi Ben, 
  
 I got it working now. I figured that I only need to call oplMap.updateSize() instead of calling the whole thing after the first load. 
  
 Thanks.

Ching,


  We are glad you finally have it working the way you want. Let us know if you have more questions.