ASP.NET学习社区ASP.NET学习区ASP.NET文摘 ASP.NET入门教程(一)----ASP.NET Web 窗体

1  /  1  页   1 跳转 查看:501

ASP.NET入门教程(一)----ASP.NET Web 窗体

ASP.NET入门教程(一)----ASP.NET Web 窗体


ASP.NET Web 窗体页框架是可以在服务器上用于动态生成 Web 页的可缩放公共语言运行库编程模型。 作为 ASP 的逻辑演变(ASP.NET 提供与现有页的语法兼容性),ASP.NET Web 窗体框架被特别设计为弥补前一模型中若干主要的不足之处。具体说来,它提供:
  • 创建和使用可封装常用功能的可重用 UI 控件,并由此减少页开发人员必须编写的代码量的能力。
  • 开发人员以有序的形式(而不是“面条式代码”)清晰地构造页逻辑的能力。
  • 开发工具为页提供强大的 WYSIWYG 设计支持的能力(现有的 ASP 代码对工具不透明)。
本“入门”节提供一些主要 ASP.NET Web 窗体功能的高级代码演练。后面的“入门”节深入探讨具体的细节。

编写第一个 Web 窗体页 ASP.NET Web 窗体页是带 .aspx 文件扩展名的文本文件。可在整个 IIS 虚拟根目录树中部署它们。当浏览器客户端请求 .aspx 资源时,ASP.NET 运行库分析目标文件并将其编译为一个 .NET 框架类。此类然后可用于动态处理传入的请求。(注意只能在第一次访问 .aspx 文件时对其进行编译,已编译的类型实例然后在多个请求间重用)。 只需采用现有的 HTML 文件并将其扩展名更改为 .aspx(不需要对代码进行任何修改)即可创建 ASP.NET 页。例如,下面的示例说明一个简单的 HTML 页;该页收集用户名和类别首选项,然后在单击按钮时执行将窗体回发到起始页的操作:

VB Intro1.aspx

[运行示例] | [查看源代码]
重要说明:注意当单击“查找”按钮时,什么也不发生。这是因为 .aspx 文件只包含静态 HTML(不包含动态内容)。因此,在与页的每一行程中发送回客户端的 HTML 都是相同的,这导致窗体字段(文本框和下拉列表)的内容在各请求间丢失。

使用 ASP <% %> 呈现块 ASP.NET 提供与现有 ASP 页的语法兼容性。这包括支持可在 .aspx 文件内与 HTML 内容混合的 <% %> 代码呈现块。这些代码块在页呈现时按由上而下的方式执行。 下面的示例说明可以如何使用 <% %> 呈现块在 HTML 块上循环(每次增加字体大小):

VB Intro2.aspx

[运行示例] | [查看源代码]
重要说明:与 ASP 不同,上述 <% %> 块中使用的代码是实际编译过的,而不是用脚本引擎解释的。这使运行库的执行性能得到了提高。 ASP.NET 页开发人员可以基本上像他们今天对待 ASP 那样,利用 <% %> 代码块动态修改 HTML 输出。例如,下面的示例说明可以如何使用 <% %> 代码块解释从客户端回发的结果。

VB Intro3.aspx

[运行示例] | [查看源代码]
重要说明:虽然 <% %> 代码块为自定义操作从 ASP.NET 页返回的文本输出提供了功能强大的方法,但它们不提供清晰的 HTML 编程模型。如上例所述,只使用 <% %> 代码块的开发人员必须自定义管理往返行程间的页状态和自定义解释传递的值。

ASP.NET 服务器控件介绍 除了(或者不)使用 <% %> 代码块编写动态内容代码外,ASP.NET 页开发人员还可使用 ASP.NET 服务器控件编写 Web 页代码。服务器控件在 .aspx 文件内由自定义标记或包含 runat="server" 属性值的内部 HTML 标记声明。内部 HTML 标记由 System.Web.UI.HtmlControls 命名空间内的某个控件处理。给不显式映射到某个控件的标记分配的类型是 System.Web.UI.HtmlControls.HtmlGenericControl。 下面的示例使用四个服务器控件:<form runat=server><asp:textbox runat=server><asp:dropdownlist runat=server><asp:button runat=server>。在运行时这些服务器控件自动生成 HTML 内容。

VB Intro4.aspx

[运行示例] | [查看源代码]
重要说明:注意这些服务器控件在与服务器的往返行程之间自动维护客户端输入的任何值。此控件状态不存储在服务器上(而是存储在请求间往返的 <input type="hidden"> 窗体字段内)。还要注意不需要客户端脚本。 除了支持标准的 HTML 输入控件外,ASP.NET 还使开发人员能够在页上利用更丰富的自定义控件。例如,下面的示例说明可以如何使用 <asp:adrotator> 控件在页上动态显示旋转的广告。

VB Intro5.aspx

[运行示例] | [查看源代码]
重要说明:在此“入门”的 Web 窗体控件引用一节中可以找到所有内置服务器控件的详细列表。

处理服务器控件事件 每个 ASP.NET 服务器控件都能公开包含属性、方法和事件的对象模型。ASP.NET 开发人员可以使用该对象模型清晰地修改页并与页交互。 下面的示例说明 ASP.NET 页开发人员可以如何处理来自 <asp:button runat=server> 控件的 OnClick 事件以操作 <asp:label runat=server> 控件的 Text 属性。

VB Intro6.aspx

[运行示例] | [查看源代码]
这个简单的示例在功能上等效于本节前面说明的“Intro3”示例。然而,注意在这个基于服务器控件的新版本中代码要清晰容易得多。

使用自定义服务器控件 ASP.NET 随附了 45 个可以在框外使用的内置服务器控件(有关详细信息,请参阅 Web 窗体控件引用)。除了使用内置 ASP.NET 控件外,开发人员还可使用由第三方供应商开发的控件。 下面的示例显示一个简单的日历控件。Calendar 控件在页内由 <acme:calendar runat=server> 标记声明。注意,页顶部的 <% Register %> 指令负责向控件实现的“Acme”代码命名空间注册“Acme”XML 标记前缀。ASP.NET 页分析器然后将在运行时利用该命名空间加载 Calendar 控件类实例。

VB Intro7.aspx

[运行示例] | [查看源代码]
本例中的 Calendar 控件被设计为在 Internet Explorer 5.5 上执行“上层样式”处理,在所有其他浏览器上执行“下层”处理。此浏览器探测技术在任何相近的方面都没有 ASP.NET 内置服务器控件提供的复杂。对于 Internet Explorer 5.5 浏览器,它生成 DHTML 输出。在选择日期和定位月份时,此 DHTML 输出不要求与服务器间的往返行程。对于所有其他浏览器,它生成标准的 HTML 3.2。此 HTML 3.2 确实要求与服务器间的往返行程以处理客户端的用户交互。 重要说明:无论是用“上层”还是“下层”浏览器访问页,页开发人员编写的代码都相同。Calendar 控件本身封装处理这两种情况所需要的所有逻辑。

列表、数据和数据绑定 ASP.NET 提供了一套内置的数据网格和列表控件。这些控件可用于提供由针对数据库或其他数据源的查询驱动的自定义 UI。例如,下面的示例说明可以如何使用 <asp:datagrid runat=server> 控件对用 SQL 数据库查询收集的书籍信息进行数据绑定。

VB Intro8.aspx

[运行示例] | [查看源代码]
<asp:datagrid runat=server> DataGrid 控件为快速显示使用传统网格控件 UI 的数据结果提供了容易的方法。或者,ASP.NET 开发人员可以使用 <asp:DataList runat=server> DataList 控件和自定义 ItemTemplate 模板自定义数据信息,如下例所示。

VB Intro9.aspx

[运行示例] | [查看源代码]
注意,<asp:datalist runat=server> 控件使最终用户(使用 ItemTemplate 模板属性)能够准确地控制列表中每一项的结构和布局。该控件还自动处理内容的两列环绕(用户可使用数据列表上的 RepeatColumns 属性控制列数)。 下面的示例提供 <asp:datalist runat=server> 控件的替换视图。

VB Intro10.aspx

[运行示例] | [查看源代码]
注意,本例中的控件、数据模型和页用户与前一个示例中的完全相同。唯一的差别是此处以声明的方式将替换模板提供给代码。

窗体验证控件 ASP.NET Web 窗体页框架提供了一套验证服务器控件。这些控件提供一个易于使用且功能强大的方法来检查输入窗体中的错误,并且在必要时向用户显示消息。 验证控件像其他服务器控件一样添加到 ASP.NET 页。有不同的控件用于特定的验证类型,如范围检查或模式匹配,以及确保用户不跳过输入字段的 RequiredFieldValidator。 下面的示例说明如何在一页上使用两个 <asp:requiredfieldvalidator runat=server> 控件验证 TextBoxDropDownList 控件的内容。

VB Intro11.aspx

[运行示例] | [查看源代码]
注意,验证控件既支持上层客户端,也支持下层客户端。上层浏览器在客户端(使用 JavaScript 和 DHTML)和服务器上执行验证。下层浏览器只在服务器上执行验证。两种情况的编程模型相同。 注意,ASP.NET 页开发人员可以在运行时随意检查 Page.IsValid 属性,确定页上的所有验证服务器控件当前是否有效。这提供了确定是否继续业务逻辑的简单方法。例如,下面的示例在指定类别上执行数据库查找之前执行 Page.IsValid 检查。

VB Intro12.aspx

[运行示例] | [查看源代码]


代码隐藏 Web 窗体 ASP.NET 支持两种创作动态页的方法。第一种方法已在前面的示例中说明,即在起始 .aspx 文件内物理声明页代码。另一种方法(称为代码隐藏方法)使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中。 下面的示例说明使用代码隐藏方法编写 ASP.NET 页代码。

VB Intro13.aspx

[运行示例] | [查看源代码]
本节小结
  • ASP.NET Web 窗体为生成动态 Web UI 提供了一个容易且功能强大的方法。
  • ASP.NET Web 窗体页可以以任何浏览器客户端为目标(没有脚本库和 Cookie 要求)。
  • ASP.NET Web 窗体页提供与现有 ASP 页的兼容性。
  • ASP.NET 服务器控件提供了封装常用功能的容易方法。
  • ASP.NET 提供 45 个内置服务器控件。开发人员也可使用第三方生成的控件。
  • ASP.NET 服务器控件可以自动设计上层和下层 HTML。
  • ASP.NET 模板提供了自定义列表服务器控件外观的容易方法。
  • ASP.NET 验证控件提供了进行声明性客户端或服务器数据验证的容易方法。
原文出自---http://chs.gotdotnet.com/quickstart/aspplus/
 

回复:ASP.NET入门教程(一)----ASP.NET Web 窗体

快速入门的内容吧。
的确是初学者最好的教程
http://www.Aspx1.Com
请帮忙宣传Aspx1 , Aspx1是ASP.NET学习者的家园 , 适宜长期居住.
 
1  /  1  页   1 跳转

版权所有 ASP.NET学习门户 2.0.1214   Sitemap  

返顶部