日期:2010-03-08 浏览次数:20567 次
1.首先得先了解下面的知识:
了解一个名词:表达式语法
表达式语法格式:<%$ ... %>
它是ASP.NET2.0新增了一种声明性表达式语法,可在分析页之前将值替换到页中.
ASP.NET表达式是基于运行时计算的信息设置控件属性的一种声明性方式.
ASP.NET表达式主要应用在:连接字符串,应用程序设置,资源文件等地方.
ASP.NET 表达式的基本语法如下:
<%$ expressionPrefix: expressionValue %>
下面演示表达式语法在连接字符串和应用程序设置的应用:
a.表达式语法在连接字符串的应用
将存储在Web.config文件中的连接字符串的值设置为控件的连接字符串属性
<ASP:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT * FROM Employees"
ConnectionString="<%$ ConnectionStrings:NorthwindCon %>">
</asp:SqlDataSource>
<configuration>
<connectionStrings>
<add name="NorthwindCon"
connectionString="Data Source=yanfa0;Integrated Security=SSPI;Initial Ctalog=Northwind;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
b.表达式语法在应用程序设置的应用
使用表达式来引用在Web.config配置文件中定义的应用程序设置
<asp:Label ID="Label1" runat="server" Text="<%$ AppSettings:Txt %>"></asp:Label>
<appSettings>
<add key="Txt" value="Abc"/>
</appSettings>
其实表达式语法还有一个重要的应用,就是在资源文件中的使用,而资源文件正是我实现本地化的基础.
区域性的格式设置
区域性名称和标识符名称遵循RFC 1766标准,具体请查看msdn
请看下图,抓取的部分区域性图片:
区域性通常分为三个类型:固定区域性、非特定区域性和特定区域性。
a.固定区域性不区分区域性。可以使用空字符串("")或者按区域性标识符0x007F来指定固定区域性,它与英语语言关联,但不与任何国家/地区关联。
b.非特定区域性是与某种语言关联但不与国家/地区关联的区域性。
c.特定区域性是与某种语言和某个国家/地区关联的区域性。
例如:"fr"(法语)是非特定区域性,而"fr-FR"(法语(法国))是特定区域性
特别提示:"zh-CHS"(简体中文)和"zh-CHT"(繁体中文)是非特定区域性。
区域性是有层次结构的,即特定区域性的父级是非特定区域性,而非特定区域性的父级是InvariantCulture
利用ASP.NET2.0可轻松地逐页更改区域性设置
只需将UICulture和Culture(区域性)属性添加到.ASPx等类似页面内的Page指令即可
<%@ Page Culture="Auto" UICulture="Auto" %>
要想对站点中的所有页面都设置相同的区域性设置,只需将以下元素添加到位于站点的根处的web.config文件中即可,这样就不必分别为每个页面进行分配了
<globalization uiCulture="auto" culture="auto" />
还可以为ASP.NET指定一个默认区域性
以下指定页面的用户界面区域性是自动,默认区域性是英语,页的区域性是自动,默认区域性是英语(美国)
<globalization uiCulture="auto:en" culture="auto:en-US" />
Culture:指示页的区域性设置
UICulture:指定用于页的用户界面(UI)区域性设置
B.设置语言首选项
自动检测功能所选择的默认Culture和UICulture有时可能不是用户所需要的
例如:一个美国籍业务员来到中国出差,在中国总部上网下业务单.这种情况下,Web应用程序应该为用户提供显式更改语言的功能,给他提供英文版的业务下单页
using System.Threading;
using System.Globalization;