|
set on " Profile.Info.LastModified) End Sub 而为了在每次页面加载时,能根据之前用户保存在profile对象中的语言正确显示网页,必须在page_preinit()事件中写入如下代码:
Dim lang As System.Globalization.CultureInfo
'读取用户在下拉框中选取的语言值 Dim selectedLang As String = Request("ddlLanguage")
'如果用户选择auto,则在下拉框中显示AUTO的选择项 If selectedLang = "Auto" Then ddlLanguage.SelectedIndex = 2 Exit Sub End If
' 如果是POSTBACK,则读取原来已经保存的语言信息 If selectedLang IsNot Nothing Then lang = New System.Globalization.CultureInfo(selectedLang) Else '如果是第一次调用页面 If Profile.language <> "Auto" Then lang = New System.Globalization.CultureInfo(Profile.language) Select Case Profile.language Case "en-US" : ddlLanguage.SelectedIndex = 0 Case "zh-CN" : ddlLanguage.SelectedIndex = 1 Case "auto" : ddlLanguage.SelectedIndex = 2 End Select Else '---if language is auto, then exit ddlLanguage.SelectedIndex = 2 Exit Sub End If End If
System.Threading.Thread.CurrentThread.CurrentCulture = lang System.Threading.Thread.CurrentThread.CurrentUICulture = lang
lblWelcomeMessage.Text = Resources.Resource.WelcomeMsg.ToString Page.Title = Resources.Resource.PageTitle.ToString lblSelectLanguage.Text = Resources.Resource.SelectLanguage.ToString 下面来解释一下代码。首先,声明一个cultureinfo类型的变量,这个变量将保存用户每次选择语言后的信息。
接下来,首先检查页面是否postback了,如果postback了(发生在页面刷新或者点击了控件,激发页面事件后,这时用户可能重新选择一种语言了),则用下拉框中用户选择的语言去初始化cultureinfo
lang = New System.Globalization.CultureInfo(selectedLang) 而如果页面是第一次调用,则读取原来profile对象中的语言信息,并根据其是什么语言,自动设置好下拉框中的对应显示(使用case语句)。
最后,我们设置系统的当然线程的本地化语言为设定好的lang,并设置各个控件的值为资源文件中的值(以resources.resource.xxxx形式调用)。程序运行后,当用户选择英文时,如下图所示:
 上一页 [1] [2] [3] [4] 下一页 |
|
|
|
|
|
|
|