表达式语法表达式语法格式:<%$ ... %> 它是ASP.NET2.0新增了一种声明性表达式语法,可在分析页之前将值替换到页中.ASP.NET表达式是基于运行时计算的信息设置控件属性的一种声明性方式.ASP.NET表达式主要应用在:连接字符串,应用程序设置,资源文件等地方.ASP.NET 表达式的基本语法如下:<%$ expressionPrefix: expressionValue %>下面演示表达式语法在连接字符串和应用程序设置的应用:a.表达式语法在连接字符串的应用将存储在Web.config文件中的连接字符串的值设置为控件的连接字符串属性
表达式语法在应用程序设置的应用使用表达式来引用在Web.config配置文件中定义的应用程序设置
区域性的格式设置区域性名称和标识符名称遵循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文件中即可,这样就不必分别为每个页面进行分配了
全局资源和本地资源资源文件实际是XML文件,其中包含要转换为不同语言或图像路径的字符串。资源文件包含键/值对,每一对都是一个单独的资源。键名不区分大小写。ASP.NET中的资源文件具有.resx扩展名。在运行时,.resx 文件将编译进一个程序集内。全局资源位于一个名为/App_GlobalResources的专用文件夹中,该文件夹位于应用程序的根目录下。所有页、用户控件等都可访问这些资源,因此全局资源通常用作共享资源。资源文件的名称用在显式表达式中,但也采用namespace.classname形式,以便在应用程序的Resources命名空间下进行强类型访问。本地资源在同级/App_LocalResources文件夹下定义,RESX 文件遵循关联页、用户控件或母版页以及区域性定义的命名约定.例如:与Index.aspx页一起有一个名为App_LocalResources的文件夹,本地资源就放在该文件夹中,该文件夹根据页的名称相应命名如下: Index.aspx.resx。非区域性特定资源文件 Index.aspx.fr.resx。区域性特定资源文件(法语) Index.aspx.de.resx。区域性特定资源文件(德语) 文件的基名称与页文件名相同,后跟语言和区域性名称,最后以扩展名 .resx 结尾提示:Vs2005可以在设计视图编辑器中打开页、用户控件或母版页时,在工具菜单中提供一个名为生成本地资源的命令。该命令可自动创建默认区域性的本地资源文件。若要创建其他语言的资源文件,可以在解决方案资源管理器中复制该文件,然后按照以下模式之一重命名它:对于全局资源文件:name.language.resx name.language-culture.resx 对于局部资源文件:pageOrControlName.extension.language.resx pageOrControlName.extension.language-culture.resx 例如,如果创建名为WebResources.resx的全局资源文件,且该文件将翻译为英语,则请将复制的文件命名为WebResources.en.resx。请注意,对于局部资源文件,资源文件名是页或控件的名称(包括文件扩展名),后面是语言和区域性信息。全局资源文件和本地资源文件之间选择?通常情况下,希望在各页之间共享资源时,应向全局资源文件添加这些资源。全局资源文件中的资源还是强类型的,用于以编程方式访问。但如果将所有本地化资源都存储在全局资源文件中,则这些文件会变得很大。此外,如果多个开发人员要处理不同的页但在同一个资源文件中工作时,全局资源文件也会更难于管理。 本地资源文件使得单个ASP.NET网页的资源比较容易管理,但不能在各页之间共享资源。此外,如果有许多页必须本地化为多种语言,则可能会创建大量本地资源文件。提示:在对默认资源文件进行更改时,无论它是本地资源文件还是全局资源文件,ASP.NET都重新编译资源并重新启动ASP.NET应用程序在添加附属资源文件将不会导致重新编译资源,但ASP.NET应用程序将重新启动
D.资源表达式有两种形式的资源表达式:显式和隐式(1).本地资源的隐式表达式如果已为页创建了本地资源文件,则可以使用隐式本地化从该资源文件中为控件填充属性值。使用隐式本地化时,ASP.NET读取资源文件并将资源与属性值相匹配。在页上,对该控件的标记使用特殊的 meta 属性可指定隐式本地化.
E.对全局资源和本地资源的编程访问调用GetLocalResourceObject或GetGlobalResourceObject方法以分别从全局资源文件或本地资源文件中读取特定的资源//访问本地资源Button1.Text = GetLocalResourceObject ( 'Button1Resource1.Text' ).ToString ( );Button1.ToolTip = GetLocalResourceObject ( 'Button1Resource1.ToolTip' ).ToString ( );//访问全局资源Button1.Text = GetGlobalResourceObject ( 'ResourceGlobal' , 'Button1Txt' ).ToString ( );Button1.ToolTip = GetGlobalResourceObject ( 'ResourceGlobal' , 'Button1ToolTip' ).ToString ( );
F.编码对于比较旧的浏览器以及移动设备上的浏览器,可能有必要将与浏览器之间的通信转换成某种基于代码页的旧式编码在web.config文件的globalization节中配置即可
G.为全球化使用 HTML 标记从右向左显示文本编写ASP.NET网页时,令文本从右向左显示的最佳方式是采用dir方向)属性dir属性通常放在html或body标记中,而页上的控件和HTML元素从指定的方向继承如果dir属性的值为html标记中的rtl(从右向左),则说明页的扩展样式设置正确。如果dir属性的值为body标记中的rtl(从右向左),则框架和标题不继承从右向左的方向。1.在或
标记中,将dir设置为ltr或rtl2.若要重写单个控件的默认方向,请将每个控件的dir设置为ltr或rtl