2

Je dois passer le langage de ressources de globalisation qui est sélectionné de la première page à la page suivante. S'il vous plaît suivez les images et les segments de code et dites-moi ce qui ne va pas avec.Comment passer la langue de la ressource à une page différente

1) Je reçois la langue dans le menu déroulant ci-dessous en utilisant le code

protected void Button1_Click(object sender, EventArgs e) 
{ 
    BasePage.CultureName = DropDownList1.SelectedItem.Value.ToString(); 
    Response.Redirect("Page1.aspx"); 
} 

2) En passant à cette fonction

public class BasePage : System.Web.UI.Page 
{ 
    public BasePage() 
    {  
    } 

    static string cultureName; 
    public static string CultureName 
    { 
     return cultureName; 
    } 
    set 
    { 
     cultureName = value; 
    } 
} 

protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentCulture = 
    CultureInfo.CreateSpecificCulture(cultureName); 
    Thread.CurrentThread.CurrentUICulture = new 
    CultureInfo(cultureName); 
    base.InitializeCulture(); 
} 

3) variable passée est en train de lire à partir d'ici en héritant à l'aide de la classe BasePage

public partial class Page1 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

4) ASPX fichier

<pre> 
<%@ Page Language="C#" AutoEventWireup="true"CodeBehind="Page1.aspx.cs" 
meta:resourcekey="PageResource1" Inherits="Globalization.Page1" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <title></title> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <div> 
       <asp:Label ID="Label2" runat="server" 
meta:resourcekey="Label2Resource1" /> 
      </div> 
       <asp:Button ID="Button1" runat="server" 
meta:resourcekey="ButtonResource1"/> 
     </form> 
    </body> 
</html> 
</pre> 

5) Veuillez vous référer aux images ci-jointes pour les fichiers de ressources. J'ai fait ces étapes. Mais ça ne marche pas. Aidez-moi, s'il vous plaît . :-)

enter image description here enter image description here

Répondre

0

J'ai compris mon erreur. Le code ci-dessus fonctionne bien et il passe la langue à la page suivante aussi. Le problème était que j'utilisais des ressources locales et j'ai ajouté des fichiers resx seulement pour 1 page. Le fichier resx doit être ajouté aux deux pages afin d'obtenir le résultat attendu.

0

Vous pouvez passer dans la chaîne de requête à l'autre page:

BasePage.CultureName = DropDownList1.SelectedItem.Value.ToString(); 
Response.Redirect(string.Format("Page1.aspx?culture={0}", BasePage.CultureName); 

Et puis dans la BasePage lire la valeur et définissez la propriété:

public BasePage() 
{ 
    this.CultureName = Request.QueryString["culture"]; 
}