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

Cómo...

Store

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

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

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

En el ejemplo vemos cómo se utiliza el store en javascript (un evento de cliente), en un serverEvent y en ASP.NET:
  • Javascript: Creamos el objeto Store de un modo similar a éste: var store = new Store('{0}_Store'); A la varible store le podemos hacer un "Set(key, value)" y un "Get(Key)". Suele usarse en los eventos de cliente.
  • serverEvents: cuando estamos en un serverEvent, podemos 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 podemos utilizar siempre que queramos 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="GMap1_Click" serverEventsType="AspNetPostBack" />
<cc1:GMap ID="GMap1" runat="server" enableServerEvents="true" enableStore="true" OnClick="GMap1_Click" />
Code.aspx.cs
private static int _i = 0;
public static int i
{
    get
    {
        return _i++;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        GMap2.addListener(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.addControl(new GControl(GControl.preBuilt.SmallZoomControl));
    }
    
    GMap1.Store.Add(i.ToString(), DateTime.Now.ToString());
}

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