ThinkGeo.com    |     Documentation    |     Premium Support

ThinkGeo and ZettaCube Incompatability

I am using ZettaCube's WebDock control for my website. When I drop a Map control onto a panel that is not enclosed by an ASP.NET UpdatePanel, the map renders fine. However, this defeats the objective of asynchronisity. When I do enclose the Map Control in an UpdatePanel (either ASP.NET UpdatePanel or ZettaCube's UpdatePanel), then the Map does not render at all.


I understand that this maybe due to the way ZettaCube renders their panels, however, I have several other third party controls that behaves well in UpdatePanels within the ZettaCube Control.




Can somebody please help me troubleshoot this issue?


 


Thanks for you excellent support


 


Chris














Hi Chris,





I added the map control into ZettaCube WebDock control and it works fine. I’m not sure what your html code looks like, the attached sample is using WebDock and map control together, hope it helps.


DockType might be another reason, the default height of html node is 0 pixel, if you are using ratio value like 100% to set your control’s height, it will follow its parent height in the DOM tree automatically, in that way, the control’s height will be 0 pixel, so you can’t see the map although it’s actually rendered. Try to use value in pixel instead to debug your website.


If your problem still exists, please provide us your html code which will be more efficient.


 



Thanks,


 



Howard.










590-Post5587.zip (98.3 KB)

Howard,


Thanks for the quick response.


 


I used your sample, and when the map dimensions are set to percentages, it does not display - as you pointed out. Setting it to a value in pixels makes the map display properly. However, that defeats the objective to have the map fill the DockPanel, and as the DockPanel resizes, have the map resize, as would have been the case if percentages worked :)


 


Any suggestions how to work around this?


 


I also forwarded the sample to ZettaCube Support.


 


Chris



Howard,


 


Here is the repoly I got from ZettaCube:


Here're some findings:
 
1. Are you using IE8?  We found that 'percentages' work on  IE7, but not IE8.
 
2. Further tracing found that the map doesn't work on FF3.0.5,  even we removed ZeeControls completely. In the following example, the map  couldn't be displayed in FF:
 
<form> id="form1" runat="server">

     <asp:ScriptManager ID="ScriptManager1" runat="server">

     </asp:ScriptManager>
 
    

            <asp:UpdatePanel ID="UpdatePanel1" runat="server"  UpdateMode="Conditional">

                 <ContentTemplate>

                    <cc2:Map ID="Map1"  runat="server" Height="100%" Width="100%">

                     </cc2:Map>

                </ContentTemplate>

             </asp:UpdatePanel>

    
</form>
 
So we  suspect that ThinkGeo doesn't detect the change in size of its parent container  correctly, or it just responds to window.onresize.  (In their demo, the entire  map is within an IFRAME, so they can respond to the window.onresize event and  resize the map correctly.)
 
While  we continue to find a fix or workaround, would you please report the above case  to ThinkGeo? Maybe they could also workout a fix too.
 
 
Regards,
 
 
Technical Support
ZettaCube Limited
 
I am using IE8, FF 3.08, and Chrome 1.0.154.53. Maybe the obove can shed some light on the matter.
 
Thanks,
Chris

I think something is not exactly right in ZettaCube's reply.



1, DTD XHTML 1.0 Transitional affects the html page on both IE 7 and IE 8, you can have a quick test to see the appearances differences with and without DOCKTYPE  on IE 7. Please see the attached simple sample.



2, Map control actually detects the size of its parent container, but in the sample, there are some extra style settings such as: 



html, body, form

{

    height: 100%;

}



It’s not the issue from ZettaCube or Map control, it’s the W3C specification which makes a standard and every web browser is expected to follow.



594-DockType.htm (289 Bytes)

Howard, 
  
 My apologies if I sound dense but your answer makes absolutely no sense. 
  
 If I remove DOCKTYPE, other widgets such as the plain ASP.NET GridView does not render at all. If I add just a  webdock, and the map inside a dockpanel, and set the map width and height to 100%, and remove DOCTYPE, then the map resize properly. However, if I then add a GridView to another dockpanel, it does not render at all (although the map does render. So, in my final application, removing the DOCTYPE is not an option. 
  
 To me is sounds that if DOCTYPE is present, the Map does not resize to its parent due to the transition rules. In absence of the rules (DOCTYPE) it does pick up the parent size and thus functions properly. 
  
 I suggest your review the issue carefully since there seems to be something not right with both the ThinkGeo Map and the ZettaCube control. ZettaCube already indicated that they are looking into this and may have found an issue.

Howard, 
  
 I stand corrected. 
  
 Removing the DOCTYPE line force the browser into Compatible mode vs Standards mode. It appears that in Compatible mode under IE7, FF3.08 and Chrome everything works perfectly. There was another error on my page that made the GridView not render properly. 
  
 From this I gather that ThinkGeo works properly under the Compatible mode but has some issues under Standards mode. 
  
 Thanks, 
 Chris









Chris,


 


There must be some misunderstandings. I didn’t mean you should remove the DocType to make it in “Compatible Mode”, it’s just an explanation why you have this problem. In fact, I mentioned to set the height in percentage for all the parents’ size, which is the real solution. 


 


The map does pick up its parent’s size in standard mode (with DOCTYPE), in your aspx page, I’m wondering is map’s parent an UpdatePanel and if yes, did you set that UpdatePanel’s height? I’ve attached a sample which adjusts some styles as following, and it works fine.


 



        
  1. Set      default html, body, form’s height to 100%,


      html, body, form { height: 100%; }


 



        
  1. Set      map’s parent: UpdatePanel’s height to 100%,


      #UpdatePanel1 { height: 100%; }


 



        
  1. Set      map’s width and height to 100%,


 


I hope it helps, if the issue still exists, please send us your sample with which we can find the problem easily.



Thanks,


 


Howard




Howard, 
  
 It was a huge misunderstanding - my apologies. Applying the styles as you suggested did the trick. I also passed this on to ZettaCube so they can investigate their end of the deal. 
  
 Thanks, 
 Chris

Hi Chris,  
  
 That’s great you have solved this issue. I’m sorry I didn’t give you a clear solution last time, please feel free to ask if you have any questions, 
  
 Thanks 
  
 Howard