接下来,首先检查页面是否postback了,如果postback了(发生在页面刷新或者点击了控件,激发页面事件后,这时用户可能重新选择一种语言了),则用下拉框中用户选择的语言去初始化cultureinfo
| lang = New System.Globalization.CultureInfo(selectedLang) |
而如果页面是第一次调用,则读取原来profile对象中的语言信息,并根据其是什么语言,自动设置好下拉框中的对应显示(使用case语句)。
最后,我们设置系统的当然线程的本地化语言为设定好的lang,并设置各个控件的值为资源文件中的值(以resources.resource.xxxx形式调用)。程序运行后,当用户选择英文时,如下图所示:
当用户选择中文提交时,程序运行如下图所示:
而实际上,asp.net 2.0之所以能实现上面的功能,实际上是利用在工程下data目录下的一个叫aspnetdb的ACCESS数据库来记录的,打开其中的aspnet_profile表,就会发现其中记录着用户每次提交的信息。
总结:
在本文中,介绍了利用asp.net 2.0的profile功能,如何去实现本地语言个性化网页应用。Profile功能利用了数据库,记录用户每次提交的本地语言化信息,可以轻松进行读取,从而实现个性化网页。我们期待在visual studio 2005正式版中,profile功能能进一步加强。