实践:使用资源来设置 Web Server 控件的属性值
2007-02-27 21:03
246 查看
在 ASP.NET 页面中,你可以使用下列方法来获取被 ASP.NET 编译并且被 .NET Framework 资源管理器所管理的资源文件中的值:
隐式的本地化,ASP.NET 从基于与控件属性的资源关键字相匹配的资源管理器中填充属性值。
明确地本地化,创建一个从 .NET Framework 资源管理器中获取特定资源的表达式。
编程,在代码中获取资源的值。关于详细信息,请参考:[实践:通过编程来获取资源的值]。
基本名称与页面名称相匹配。例如,如果你正在操作名为 Default.aspx 的页面,那么资源文件就应该被命名为 Default.aspx.resx(默认的资源)、Default.aspx.es.resx、Default.aspx.es-mx.resx,等等。
文件中的资源使用了命名约定 resourcekey."property"。例如,关键字名称 Button1."Text"。
在控件的标记中,添加一个隐式的本地化特性。例如:
Class 是基于 resx 文件名的资源文件类。一个被命名为 WebResources.resx 的资源文件所使用的类名称应该是 WebResources。而所有的文化变量资源文件都会使用相同的类名称来作为文化中立的资源文件。如果你需要从与页面相关联的局部资源文件中获取资源,那么 Class 就是可选的。
ResourceKey 是已指定类的资源名称。
例如,一个被配置成从全局资源文件中设置 Text 属性的 Button 控件将会与下列代码范例相似:
在第一个范例中,把第一行中的 <default> 改成一个有效的文化名称。关于文化名称的列表,请参考:[CultrueInfo] 中的 "文化名称和标识符" 部分。
在 Web 页面中,资源(比如图片)都是通过使用一个 URL 来引用一个外部文件的方式而被包括的。通常,你需要通过创建不同版本的图片来本地化图片和其他资源。然后你就可以通过把字符串资源指定成适当路径的资源表达式的方式来设置控件的 URL。
隐式的本地化,ASP.NET 从基于与控件属性的资源关键字相匹配的资源管理器中填充属性值。
明确地本地化,创建一个从 .NET Framework 资源管理器中获取特定资源的表达式。
编程,在代码中获取资源的值。关于详细信息,请参考:[实践:通过编程来获取资源的值]。
使用隐式的本地化
确保你拥有符合下列标准的局部资源文件(.resx 文件):它们位于 App_LocalResources 目录中。基本名称与页面名称相匹配。例如,如果你正在操作名为 Default.aspx 的页面,那么资源文件就应该被命名为 Default.aspx.resx(默认的资源)、Default.aspx.es.resx、Default.aspx.es-mx.resx,等等。
文件中的资源使用了命名约定 resourcekey."property"。例如,关键字名称 Button1."Text"。
在控件的标记中,添加一个隐式的本地化特性。例如:
<asp:Button ID="Button1" runat="server" Text="DefaultText" meta:resourcekey="Button1" />所有的资源文件都是被编译的,并且 .NET Framework 资源管理器通过 ASP.NET 而被用来在运行时获取默认资源文件中每种资源的适当的文化资源。关于每种资源,ASP.NET 会在页面中寻找相应的 resourcekey."property" 联合(类似于前面范例中的 resourcekey="Button1"),然后把已获取的值替代成资源。
使用明确的本地化
在控件的标记中,使用资源表达式来为每个你需要替换成资源的属性而设置值。表达式的语法如下所示:<%$ Resources:Class, ResourceKey %>使用这些值:
Class 是基于 resx 文件名的资源文件类。一个被命名为 WebResources.resx 的资源文件所使用的类名称应该是 WebResources。而所有的文化变量资源文件都会使用相同的类名称来作为文化中立的资源文件。如果你需要从与页面相关联的局部资源文件中获取资源,那么 Class 就是可选的。
ResourceKey 是已指定类的资源名称。
例如,一个被配置成从全局资源文件中设置 Text 属性的 Button 控件将会与下列代码范例相似:
<asp:Button ID="Button1" runat="server" Text="<%$ Resources:WebResources, Button1Caption %>" />
范例
下列代码范例分别说明了隐式的本地化和明确的本地化。第一个代码范例说明了如何使用隐式的本地化,这发生在每个被标记了元特性的控件中。并且在运行时,ASP.NET 会把资源匹配到控件的属性。而第二个代码范例则说明了一个使用资源表达式(明确的本地化)来设置若干控件的 Text 属性值以及一个 Image 控件的 ImageUrl 属性值的页面。在第一个范例中,把第一行中的 <default> 改成一个有效的文化名称。关于文化名称的列表,请参考:[CultrueInfo] 中的 "文化名称和标识符" 部分。
<%@ Page Language="C#" Culture"auto:<default>" meta:resourcekey="PageResource1" UICulture="auto" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Implicit Localization Sample</title> </head> <body> <form id="form1" runat="server"> <div> <h1> <asp:Localize runat=server ID="WelcomeMessage" Text="Welcome!" meta:resourcekey="Literal1" /> </h1> <p> <asp:Image runat="server" ID="Logo" ImageUrl="" meta:resourcekey="Logo" /> </p> <br /> <br /> <asp:Localize runat="server" ID="NameCaption" Text="Name: " meta:resourcekey="Literal2" /> <asp:TextBox runat="server" ID="TextBox1" meta:resourcekey="TextBox1" /> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Submit" meta:resourcekey="Button1"/><br /> </div> </form> </body> </html>
<%@ Page Language="C#" UICulture="auto" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Explicit Localization Sample</title> </head> <body> <form id="form1" runat="server"> <div> <h1> <asp:localize runat="server" Text="<%$ Resources:WebResources, WelcomeMessage %>" /> </h1> <asp:Image runat="server" id="Logo" ImageUrl="<%$ Resources:WebResources, LogoUrl %>" /> <p> <asp:Localize runat="server" Text="<%$ Resources:WebResources, EnterNameCaption %>" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="<%$ Resources:WebResources, SubmitButtonCaption %>" /> </p> </div> </form> </body> </html>在 @ 页面指令中,UICultrue 特性被设置成是自动指定的,并且页面应该把当前的 UI 文化设置成通过浏览器而传递的信息。
在 Web 页面中,资源(比如图片)都是通过使用一个 URL 来引用一个外部文件的方式而被包括的。通常,你需要通过创建不同版本的图片来本地化图片和其他资源。然后你就可以通过把字符串资源指定成适当路径的资源表达式的方式来设置控件的 URL。
相关文章推荐
- 使用开源框架smart image view实现网络资源照片设置到ImageView控件
- Delphi 使用 RTTI 动态通过名称调用函数和设置控件属性值
- requestFocus标签的使用(为控件设置焦点)
- .net 设置webbrowser控件使用的IE版本
- Cocos2d-JS中使用CocosStudio资源——设置界面
- c#学习笔记之使用 TableLayoutPanel 控件设置窗体布局
- jQuery使用attr()方法同时设置多个属性值用法实例
- 在IE8 FF中使用padding设置select控件文字垂直居中
- setFocus一定要写在setLayout设置的后面,否则不起作用——使用setFocusPolicy为控件设置不同的焦点策略:Tab焦点,Click焦点,Wheel焦点和没有焦点
- Android控件系列之XML静态资源使用介绍
- Qt树形控件QTreeView使用2——复选框的设置
- xib 使用autolayout 设置子控件尺寸与父控件尺寸成比例
- Android使用程序代码设置控件的margin属性
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- UI - Xcode 7 使用xib设置控件圆角
- MFC 使用static控件显示时间 并设置控件的字体格式和颜色
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- 使用用户控件实现 Web 部件个性化设置
- appium+python自动化测试实践之使用uiautomatorviewer.bat+webdriver模块查找定位app界面控件(Android)
- android 各种控件颜色值的设置(使用Drawable,Color)