J'ai une page Web avec un calendrier, une étiquette pour contenir une valeur monétaire et une étiquette pour dire bonjour. Lorsque je sélectionne une langue dans la liste déroulante, cela change le libellé de la devise, le calendrier, mais bonjour ne change pas. Voici le code dépouillé pour la page ASPX et le fichier cs:Devise, le calendrier change-t-il dans la langue sélectionnée, mais pas dans l'étiquette asp.net?
ASPX:
<asp:Label ID="lblLanguageSelection" runat="server"
Text="Select a language: "></asp:Label>
<asp:DropDownList ID="ddlLanguages" runat="server" AutoPostBack="true">
<asp:ListItem Value="auto">Auto</asp:ListItem>
<asp:ListItem Value="en-US">English (US)</asp:ListItem>
<asp:ListItem Value="en-GB">English (GB)</asp:ListItem>
<asp:ListItem Value="de">German</asp:ListItem>
<asp:ListItem Value="fr">French</asp:ListItem>
<asp:ListItem Value="fr-CA">French (Canada)</asp:ListItem>
<asp:ListItem Value="hi">Hindi</asp:ListItem>
<asp:ListItem Value="th">Thai</asp:ListItem>
</asp:DropDownList>
<br /><br />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
<br /><br />
<asp:Label ID="lblCurrency" runat="server"></asp:Label>
<br /><br />
<asp:Label ID="lblHello" runat="server"></asp:Label>
CS:
protected void Page_Load(object sender, EventArgs e)
{
decimal currency = 65542.43M;
string hello = "Hello";
lblCurrency.Text = string.Format("{0:c}", currency);
lblHello.Text = string.Format("{0}",hello);
}
protected override void InitializeCulture()
{
string language = Request["ddlLanguages"];
if (language != null)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(language);
}
}
Merci, j'ai pris l'échantillon d'une vidéo que j'ai regardée. Je n'ai jamais utilisé la demande auparavant. Je crois que la personne a dit qu'ils ont utilisé la requête parce que la valeur ne peut pas être initialisée à l'exécution, et SelectetdValue lancerait une erreur. – Xaisoft