发布值并使用请求

时间:2016-09-02 15:21:17

标签: asp.net request postback multilingual

我正在使用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;]发布和检索它的值),但使用LinkBut​​ton和Click事件。 ..

......或任何其他建议。谢谢,马丁 -----

我忘了指出的是,我在我的标记中使用了对资源文件的引用,根据所选的文化ID放置了正确的文本:

HeaderText="<%$ Resources: Resource, Grid01Documentation %>"

因此,更改语言会影响所有GridView标题,按钮等...

0 个答案:

没有答案