我正在使用this视频作为教程撰写多语言网络应用程序:
在此视频中,网络的语言更改是通过DropDown菜单执行的,该菜单会发布所需的文化ID(en-UK,es,fr ...)。该值在后面的代码中检索并用于设置正确的参数,如下所示。
protected override void InitializeCulture()
{
String language = Request.Form["DropDownList"];
if ((language != null) && (language != ""))
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
}
}
我不喜欢DropDownList的想法,并希望用户点击标志切换到该语言。我用超链接实现了这个目标:
<asp:HyperLink ID="HyperLinkSpanish" runat="server" NavigateUrl="Tool.aspx?id=es"><img src="img/es.png"></asp:HyperLink>
然后在InitializeCulture方法中使用以下命令检索发布的QueryParameter:
String language = Request.QueryString["id"];
这很好用,但是当你点击HyperLink时,页面会从头开始重新加载,而我的想法是用所选语言翻译到目前为止显示的所有内容。我完成了autodidact,并想知道如何实现相同的机制(使用Request.Form [&#34; ControlID&#34;]发布和检索它的值),但使用LinkButton和Click事件。 ..
......或任何其他建议。谢谢,马丁 -----
我忘了指出的是,我在我的标记中使用了对资源文件的引用,根据所选的文化ID放置了正确的文本:
HeaderText="<%$ Resources: Resource, Grid01Documentation %>"
因此,更改语言会影响所有GridView标题,按钮等...