¡Ayúdanos a traducir esta Web y consigue licencias gratis!
Usuario anónimo  |  Ingresar  |  Regístrate

Básico 3

GoogleMaps no se lleva bien con los elementos que lo ocultan con un Hidden, pues acaba descuadrándose o, directamente, no mostrándose.

Tenemos este problema, por ejemplo con los TabPanels del TabContainer del Ajax Control Toolkit o con un div con style="hidden".

La solución es utilizar el método getChangeHiddenStateFunction() de cada mapa, el cual devuelve un javascript que debemos ejecutar en el momento en que se vaya a mostrar el mapa.

En el ejemplo del TabContainer, vemos que se ejecuta ese javascript en el preciso momento en que se hace clic sobre su TabPanel correspondiente.


1234


Code.aspx
<cc1:GMap ID="GMap1" runat="server" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<ajaxToolkit:TabContainer ID="TabContainer1" runat="server">
    <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="1">
        <ContentTemplate>
            <cc1:GMap ID="GMap1" runat="server" />
        </ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel2" runat="server" HeaderText="2">
        <ContentTemplate>
            Empty Tab
        </ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel3" runat="server" HeaderText="3">
        <ContentTemplate>
            <cc1:GMap ID="GMap2" runat="server" />
        </ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel4" runat="server" HeaderText="4">
        <ContentTemplate>
            Empty Tab
        </ContentTemplate>
    </ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>
Code.aspx.cs
GMap1.setCenter(new GLatLng(40, 1));
GMap2.setCenter(new GLatLng(39, 2));

GMap1.addControl(new GControl(GControl.extraBuilt.TextualCoordinatesControl));
GMap1.addControl(new GControl(GControl.extraBuilt.MarkCenter));
GMap2.addControl(new GControl(GControl.extraBuilt.TextualCoordinatesControl));
GMap2.addControl(new GControl(GControl.extraBuilt.MarkCenter));

TabPanel1.OnClientClick = GMap1.getChangeHiddenStateFunction();
TabPanel3.OnClientClick = GMap2.getChangeHiddenStateFunction();
Powered by Subgurim.NET