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

Cómo...

ASP.NET Postback

Alternativamente a los serverEvents nativos del control GMaps, podemos forzar a que estos ejecuten un PostBack ASP.NET tradicional. Para ello no hay más que indicarlo con serverEventsType="AspNetPostBack" (Como siempre, enableServerEvents debe estar activado).

Una de las diferencias más importantes es que con los serverEvent nativos sólo puede interactuar con el mapa devolviendo un string con Javascript. Usando el PostBack podemos devolver ese Javascript, pero además podemos interactuar directamente con el mapa (ver ejemplo).

También podemos acceder a variables de sesión, Viewstate, etc.

Además, funciona muy bien usándolo dentro de un UpdatePanel.

Sin embargo, los serverEvent nativos son muchísimo más rápidos y eficientes, con lo que se recomienda el uso de estos siempre que sea posible.




Code.aspx
<cc1:GMap ID="GMap1" runat="server" serverEventsType="AspNetPostBack" enableServerEvents="true" OnClick="GMap1_Click" OnMarkerClick="GMap2_MarkerClick" />
Code.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.setupMap();
    }

    if (GMap2.IsAjaxPostBack)
    {
        // GMaps Ajax PostBack
    }
}

private void setupMap()
{
    GLatLng latLng = new GLatLng(40,10);

    GMap2.GCenter = latLng;

    GMarker marker = new GMarker(latLng);
    GMap2.Add(marker);
}

protected string GMap2_Click(object s, GAjaxServerEventArgs e)
{
    GMap2.GZoom = 1;

    GInfoWindow window = new GInfoWindow(e.point, "Clicked");
    GMap2.Add(window);

    return string.Empty;
}

protected string GMap2_MarkerClick(object s, GAjaxServerEventArgs e)
{
    GLatLng latLng = new GLatLng(40, 10);

    GMap2.GCenter = latLng;
    GMap2.resetInfoWindows();

    GMap2.GZoom = 6;
    return string.Empty;
}
Powered by Subgurim.NET