Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    La lingua della label non varia se cambio Visible="false" in true, InitializeCulture

    Ciao ragazzi, ho l'esigenza di cambiare lingua alla mia pagina web. Seguendo vari esempi elenco quello che ho fatto:

    1- Ho aggiunto una cartella App_GlobalResources al mio sito.
    2- All'interno di essa ho creato Common.resx e Common.it-IT.resx
    3- Nella tabella di Common ho: Name=Pr , Value=inglese
    4- Nella tabella di Common.it-IT ho: Name=Pr , Value=italiano

    Nel code Behind:
    codice:
      protected override void InitializeCulture()           
        {                                                   
            string culture = Request.Form["DropDownList5"];  
            CultureInfo c;
    
            if (string.IsNullOrEmpty(culture))
                culture = "English";
    
                if (culture == "English")
                {
                    c = CultureInfo.CreateSpecificCulture("en-US");
                    Thread.CurrentThread.CurrentCulture = c;
                    Thread.CurrentThread.CurrentUICulture = c;
                }
               
                if (culture == "Italiano")
                {
                    c = CultureInfo.CreateSpecificCulture("it-IT");
                    Thread.CurrentThread.CurrentCulture = c;
                    Thread.CurrentThread.CurrentUICulture = c;
                    
                }
    
            base.InitializeCulture();
        }
    
       
         protected void  Page_Load(object sender, EventArgs e)                              
        {
             Label9.Visible=true;
        }
    
    .................
    
    <asp:Label ID="Label9" runat="server" 
                     style="top: 300px; left: 600px; position: absolute; height: 19px; width: 34px" 
                      Text="<%$ Resources: Common , Pr %>" Visible="false" > </asp:Label>

    Il mio problema è che dopo il primo cambio di lingua da DropDownList i tentativi successivi di cambio non funzionano..Mi spiego meglio, la pagina si carica con testo "inglese" , cambio la lingua e diventa "italiano" , da adesso anche cambiando lingua da dropdownlist il testo della label non cambia...
    Ho notato che se lascio la label sempre visibile invece funziona benissimo..Come mai?
    E' ovvio che ho fatto un esempio, il mio codice è più complesso ..Ho l'esigenza sia di cambiare lingua che quella di fare apparire e scomparire la label..
    Altra domanda: quando viene invocato InitializeCulture () ??

    Grazie

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    per la seconda volta, DEVI usare i tag CODE...
    Sai come si fa ?

  3. #3
    Mi scuso, purtroppo non so come si fa..

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    devi scrivere il codice fra i tags:

    [ code ]

    e

    [ /code ]


    Senza usare gli spazi... (ho dovuto metterli altrimenti non si vedevano i tag)

  5. #5
    Grazie, mi scuso ancora...
    Qualcuno ha qualche idea per risolvere il mio problema ?

  6. #6
    initializeCulture è una dei primissimi metodi richiamati quando viene richiesta una pagina.
    Prima dell'evento PreInit addirittura.

    il codice che hai scritto nel gestore evento mi pare giusto.

    Non ho capito bene il tuo problema: non riesci più a vedere la label?

  7. #7
    Ciao, grazie per la risposta. Ti descrivo le azioni che succedono:
    1- Avvio del programma e caricamento pagina
    2- Compare la label con testo inglese ( Fin qui tutto ok )
    3- Dalla dropdownlist chiedo di cambiare lingua e metterla in italiano
    4- Compare la label con testo italiano ( Anche ora tutto bene )
    5- Dalla dropdownlist chiedo di cambiare lingua e metterla in inglese
    6- La label rimane visualizzata in italiano
    7- Ogni altro tentativo di cambio lingua non scalfisce la label che rimane in italiano

    Però ripeto, se definisco la label con visible true fin da subito non ho problemi e cambia lingua benissimo... Il passaggio visible false --> true crea dei problemi...
    Sto pensando , in mancanza di consigli illuminanti , di riscrivere tutto in una master page ..

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ma hai messo l'autopostback a true nella dropdownlist o c'e' un pulsante ?

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    e cosa viene passato, esattamente, tramite querystring ?

  10. #10
    sì , AutoPostback è enabled...sto pensando ad un codice che mi crei dei cookie e nell'evento della dropdownlist fare un redirect alla pagina stessa passandogli i cookie..
    Così facendo le label che mi interessano vengono visualizzate e DOPO vengono eventualmente corrette dal InitializeCulture() , può funzionare ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.