为什么在更改uiCulture时不会更改asp.net控件上的文本

时间:2014-12-08 07:18:10

标签: c# jquery asp.net controls globalization

我在aspx页面上有用户控制权 uc具有下拉列表控件,用于选择三种语言中的一种:希伯来语(默认),英语或俄语 我有三个resx页面包含每种语言的翻译 当用户选择语言时,我将父页面的uiCulture更改为所选选项:

this.Page.UICulture = language;  

有效。
但是......并不完全 我将div定义如下:

<div class="col col-md-3 col-xs-4"><%= Resources.MyResource.CurrencyText %></div>  

及其内容按预期更改 但我也定下了下拉列表:

<asp:DropDownList ID="ddlCurrency" CssClass="form-control" runat="server" Height="16px">
  <asp:ListItem Value="1" Text="<%$ Resources:MyResource,shekelOpt %>"></asp:listitem>
  <asp:ListItem Value="2"  Text="<%$ Resources:MyResource,dollarOpt %>"></asp:ListItem>
</asp:DropDownList>  

它根本没有变化。
我尝试解决方法,并在$(document).ready函数中写入:

$("#<%= ddlCurrency.ClientID %> option:nth-child(1)").text("<%= Resources.MyResource.shekelOpt %>");
$("#<%= ddlCurrency.ClientID %> option:nth-child(2)").text("<%= Resources.MyResource.dollarOpt %>");  

它有效,但我不喜欢这个解决方案,它很丑陋而且不够构建。

有人可以帮助并告诉我如何使asp:dropdownlist(以及asp:按钮)上的文本被更改?

screenshot

2 个答案:

答案 0 :(得分:0)

代码隐藏中的

覆盖了culture和UIculture的两个属性

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

答案 1 :(得分:0)

在ResourceClearing.aspx.vb中添加此项以测试ru-RU文化。不要将文化设置在InitializeCulture之外:

protected override void InitializeCulture()
                {
                    Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
                    base.InitializeCulture();
                }

在ResourceClearing.aspx页面

中添加此内容
<asp:DropDownList ID="ddlCurrency" CssClass="form-control" runat="server" Height="16px">
  <asp:ListItem Value="1" Text="<%$ Resources:shekelOpt %>"></asp:listitem>
  <asp:ListItem Value="2"  Text="<%$ Resources:dollarOpt %>"></asp:ListItem>
</asp:DropDownList> 

如果不起作用,请在ResourceClearing.aspx页面中添加此标记

<asp:DropDownList ID="ddlCurrency" CssClass="form-control" runat="server" Height="16px" meta:resourcekey="ddlCurrencyResource1" >
                <asp:ListItem Value="1" Text="Shekal" meta:resourcekey="ListItemResource1"></asp:ListItem>
                <asp:ListItem Value="2"  Text="Dollar" meta:resourcekey="ListItemResource2"></asp:ListItem>
            </asp:DropDownList>

并在所有3个资源文件中添加以下条目及其值:

enter image description here