Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2009, 12:41
Stream
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
asp.net calendar extender change language globalization cambiar idioma ajax postback

Hola,

este dia, me encontré el problema de cambiar el lenguaje del calendar extender cuando cambiamos el idioma mediante un postback para que la pagina cambie de lenguaje sin refrescar la pagina.

Si me lleve un rato investigando y haciendo pruebas.. todo se resumio a lo siguiente...

Primero, hay que crear la siguiente clase:

Código:
        [Serializable()]
        public class ClientCultureInfo
        {
            public string name;
            public NumberFormatInfo numberFormat;
            public DateTimeFormatInfo dateTimeFormat;

            public ClientCultureInfo(CultureInfo cultureInfo)
            {
                this.name = cultureInfo.Name;
                this.numberFormat = cultureInfo.NumberFormat;
                this.dateTimeFormat = cultureInfo.DateTimeFormat;
            }

            public static string SerializedCulture(ClientCultureInfo info)
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                return js.Serialize(info);
            }
        }
Y ahora, hay que poner el siguiente codigo en el boton que cambia tu idioma...
Código:
protected void ibtnSpanish_Click(object sender, ImageClickEventArgs e)
{
            ClientCultureInfo clientCulture = new ClientCultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture);
            string serializedCulture = ClientCultureInfo.SerializedCulture(clientCulture);

            ScriptManager.RegisterStartupScript(this, this.GetType(),
            "changeLanguage",
            string.Format("var newCultureInfo = '{0}'; Sys.CultureInfo.CurrentCulture = Sys.CultureInfo._parse(newCultureInfo); ", serializedCulture), true);

}

Y es todo..

Saludos