Maps.Subgurim.Net

Usuario anónimo  |  Ingresar  |  Regístrate

Store

Para trabajar con la clase Store es imprescindible activar la propiedad "enableStore".

Store es una funcionalidad muy potente que permite compartir información entre cliente, servidor y los serverEvents.

Funciona como un Dictionary<string, string>, con una "key" y un "value".

En el ejemplo se ve cómo se utiliza el store en javascript (un evento de cliente), en un serverEvent y en ASP.NET:

  • Javascript: Se crea el objeto Store de un modo similar a éste: var store = new Store('{0}_Store'); A la varible store se le puede hacer un "Set(key, value)" y un "Get(Key)". Suele usarse en los eventos de cliente.
  • serverEvents: en un serverEvent, se puede utilizar el GAjaxServerEventArgs llamando a e.store. e.store es un Dictionary<string, string> normal de ASP.NET .
  • ASP.NET: cada instancia de GMaps tiene una propiedad Store, que se puede utilizar siempre que se desee en lado de servidor (aunque en el serverEvent sea aconsejable usar e.store).

Code.aspx
<cc1:GMap ID="GMap1" runat="server" enableServerEvents="true" enableStore="true" OnClick="GMap_Click" serverEventsType="AspNetPostBack" />
<br />
<cc1:GMap ID="GMap2" runat="server" enableServerEvents="true" enableStore="true" OnClick="GMap_Click" />
Code.aspx.cs
private static int _i;

public static int Next
{
    get { return _i++; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        Page.Title = "Google Maps ASP.NET - " + lt_Titulo.Text;

        GMap2.Add(new GListener(GMap2.GMap_Id, GListener.Event.zoomend, string.Format(
            @"
                function(oldZoom, newZoom)
                {{
                    var store = new Store('{0}_Store');
                    store.Set(Math.random(), oldZoom + '-' + newZoom);
                }}
                ", GMap2.GMap_Id)));

        GMap2.Add(new GControl(GControl.preBuilt.SmallZoomControl));
    }

    GMap1.Store.Add(Next.ToString(), DateTime.Now.ToString());
}

protected string GMap_Click(object s, GAjaxServerEventArgs e)
{
    e.store[Next.ToString()] = DateTime.Now.ToString();
    return string.Format("alert('{0} Store items: {1}')", e.map, e.store.Count);
}
Powered by Subgurim.NET