|:为ASP.NET 2.0的本地化下拉简介
的代码显示了一个简单的方法,如下拉资源file.nbsp约束力的ListItem为基础的控制;Backgroundnbsp;
的想法是存储在XML格式的数据,而不是名称收藏价值,并将其绑定到。NET控件使用的XmlDataSource对象。 使用Codenbsp;
我添加anbsp;字符串资源"MyCountryListquot;下拉控件中包含的XML数据。 Resource.en - US.resx
Resource.es - MX.resx{C}Default.aspx的<countries>
<country text="Pakistan" value="PK"/>
<country text="Iran" value="IR"/>
<country text="Afghanistan" value="AF"/>
</countries>
Default.aspx.cs<form id="form1" runat="server">
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl=" /Default.aspx?lang=esp">Esp</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server"
NavigateUrl=" /Default.aspx?lang=eng">Eng</asp:HyperLink><br />
<br />
<asp:Localize ID="Localize1" runat="server"
Text="<%$ Resources:Resource, Greeting%>"></asp:Localize>
<br />
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
<asp:DropDownList ID="DropDownList1" runat="server" >
</asp:DropDownList>
</form>
protected void Page_Load(object sender, EventArgs e)
{
// loading xml from resource file into xmldatasource object
XmlDataSource1.Data = Resources.Resource.MyCountryList;
XmlDataSource1.EnableCaching = false;
XmlDataSource1.DataBind();
DropDownList1.DataSourceID = "XmlDataSource1";
DropDownList1.DataTextField = "text";
DropDownList1.DataValueField = "value";
DropDownList1.DataBind();
}
//The setting up the culture
protected override void InitializeCulture()
{
string lang = "en-US";
if (Request.QueryString["lang"] != null)
{
switch (Request.QueryString["lang"])
{
case "esp":
lang = "es-MX";
break;
case "eng":
lang = "en-US";
break;
}
}
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(lang);
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
base.InitializeCulture();
}
斜体行显示2种方法绑定到资源文件。您还可以下载本文附带的源代码。历史2009年一月一日:战后初期