Sub Calendar1_SelectionChanged(ByVal sender As Object, _ ByVal e As System.EventArgs) Profile.Info.DateSelected = Calendar1.SelectedDate Profile.Info.LastModified = Now End Sub |
当页面加载时,我们可以取出预先保存在profile对象中的值,然后再在日历控件中显示上次用户显示的日期,以及用户上次选择日期时的时间。
Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load Calendar1.SelectedDate = Profile.Info.DateSelected Response.Write("Date 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类型的变量,这个变量将保存用户每次选择语言后的信息。