需要注意是,当您在用于调用组件类的 <脚本> 块中键入代码时,将获得完整的 IntelliSense 语句完成(包括组件类),如图 3 所示。这是在 Visual Studio .NET 2003 基础上的一大改进,Visual Studio .NET 2003 不支持服务器端 <脚本> 块中的 IntelliSense。
浏览 Default.aspx 会生成输出。填入本金、利率和年数,然后单击 Calculate(计算), 资源文件 如果您以前在 Visual Studio .NET 2002 或 2003 中使用过 Web 应用程序,您一定已经注意到每次创建新 Web 窗体页时,除了 .aspx 页以及 .vb 或 .cs 模块化文件之外,Visual Studio 还会创建一个具有 .resx 扩展名的匹配文件(即 WebForm1.aspx.resx)。与大多数 Web 开发人员一样,您可能也会忽略或试图删除这些文件,因为它们的用途和/或用法并不是很直观。简言之,这些 .resx 文件称为“资源文件”,主要用于存储各个版本的资源,例如用于本地化的不同语言的文本字符串。
在 Visual Studio .NET 2002 和 2003 中,资源文件需要作为生成项目进程的一部分添加到项目程序集中,并且需要导入两个命名空间,创建一个 ResourceManager 对象,并调用其 GetString 方法以访问资源字符串。在 \Code 目录的帮助下,Visual Studio .NET Whidbey 中的资源访问过程变得非常简单,如下面的示例所示。
我们先从创建资源文件开始,还是使用上一个示例中的项目。首先,右击刚才创建的 Compilation Web 站点,然后单击 Add New Item...(添加新项...)。在 Add New Item(添加新项)对话框中,选择 Assembly Resource File(程序集资源文件)模板,将资源文件命名为 strings.resx,然后单击 Open(打开) 将以下项添加到数据表中(可以将“comment”(注释)、“type”(类型)和“mimetype”(MIME 类型)列保留为空):
名称 | 值 | txtColorPrompt | 请选择一种颜色: | txtColorResponseGreen | 您选择了绿色! | txtColorResponseBlue | 您选择了蓝色! | txtColorResponseRed | 您选择了红色! |
现在重复上述过程,添加一个名为 strings.en-GB.resx 的新资源文件,并将以下项添加到其数据表中,然后保存文件(因为我们没有添加 txtColorResponse* 的项,所以所有客户机都将使用 strings.resx 中的这些项的值):
名称 | 值 | txtColorPrompt | 请选择一种颜色: |
现在,为了充分利用 Code 目录的神奇作用,我们需要将这两个 .resx 文件从 Web 站点的根目录拖到 Code 目录中。完成上述操作 为了说明现在使用创建的资源文件是多么简单,我们将一个 Web 窗体添加到项目中,方法如下:右击 Web 站点节点,然后单击 Add New Item....(添加新项...)。在 Add New Item(添加新项)对话框中,选择 Web 窗体,将页面命名为 ColorPicker.aspx,然后单击 Open(打开)。修改此页面,使其与以下列表匹配。
ColorPicker.aspx:
<%@ page UICulture="en-GB" language="VB" %><script runat="server"> Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = Resources.strings.txtColorPrompt End Sub Sub Submit_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label1.ForeColor = _ System.Drawing.Color.FromName(Dropdownlist1.SelectedValue) Select Case Dropdownlist1.SelectedValue Case "红色" Label1.Text = Resources.strings.txtColorResponseRed Case "绿色" Label1.Text = Resources.strings.txtColorResponseGreen Case "蓝色" Label1.Text = Resources.strings.txtColorResponseBlue End Select Dropdownlist1.Visible = False Submit.Visible = False End Sub</script><html><head runat="server"> <title>颜色选取器</title></head><body> <form runat="server"> <asp:label id="Label1" runat="server">Label</asp:label> <asp:dropdownlist id="Dropdownlist1" runat="server"> <asp:listitem value="Red">红色</asp:listitem> <asp:listitem value="Green">绿色</asp:listitem> <asp:listitem value="Blue">蓝色</asp:listitem> </asp:dropdownlist> <asp:button id="Submit" text="提交" runat="Server" onclick="Submit_Click" /> </form></body></html> |
当从浏览器中浏览 ColorPicker.aspx 时,默认输出与图 8 类似。如果从为英国用户设置的系统中浏览此页面(您可以通过将页面的 UICulture 属性设置为“en-GB”并保存页面来模拟此情形), |