服务器控件是服务器可理解的标签。HTML 服务器控件是服务器可理解的 HTML 标签。

经典 ASP 的局限性

下面列出的代码是从上一章中复制的:

<html>
<body bgcolor="yellow">
<center>
<h2>Hello Runoob!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>

上面的代码反映出经典 ASP 的局限性:代码块必须放置在您想要输出显示的位置。

通过经典 ASP,想要把可执行代码从 HTML 页面中分离出来是不可能的。这让页面变得难以阅读,也难以维护。

ASP.NET - 服务器控件

ASP.NET 通过服务器控件,已经解决了上述的"意大利面条式代码"问题。

服务器控件是服务器可理解的标签。

有三种类型的服务器控件:

  1. HTML 服务器控件 - 创建的 HTML 标签
  2. Web 服务器控件 - 新的 ASP.NET 标签
  3. Validation 服务器控件 - 用于输入验证

ASP.NET - HTML 服务器控件

HTML 服务器控件是服务器可理解的 HTML 标签。

ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的。要想让这些元素可编程,需向 HTML 元素中添加 runat="server" 属性。这个属性表示,该元素将被作为服务器控件进行处理。同时需要添加 id 属性来标识服务器控件。id 引用可用于操作运行时的服务器控件。

注释:所有 HTML 服务器控件必须位于带有 runat="server" 属性的

标签内。runat="server" 属性表明了该表单必须在服务器上进行处理。同时也表明了包含在它内部的控件可被服务器脚本访问。

在下面的实例中,我们在 .aspx 文件中声明了一个 HtmlAnchor 服务器控件。然后我们在一个事件句柄(事件句柄是一种针对给定事件执行代码的子例程)中操作 HtmlAnchor 控件的 HRef 属性。Page_Load 事件是 ASP.NET 可理解的多种事件中的一种:

<script runat="server">
Sub Page_Load
link1.HRef="http://www.runoob.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit RUNOOB!</a>
</form>
</body>
</html>

可执行代码本身已经被移到 HTML 之外了。

ASP.NET - Web 服务器控件

Web 服务器控件是服务器可理解的特殊 ASP.NET 标签。

就像 HTML 服务器控件,Web 服务器控件也是在服务器上创建的,它们同样需要 runat="server" 属性才能生效。然而,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们可以表示更复杂的元素。

创建 Web 服务器控件的语法是:

<asp:control_name id="some_id" runat="server" />

在下面的实例中,我们在 .aspx 文件中声明了一个 Button 服务器控件。然后我们为 Click 事件创建一个事件句柄,用来改变按钮上的文本:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Validation 服务器控件

Validation 服务器控件是用来验证用户输入的。如果用户输入没有通过验证,将显示一条错误消息给用户。

每种 validation 控件执行一种指定类型的验证(比如验证某个指定的值或者某个范围的值)。

在默认情况下,当 Button、ImageButton、LinkButton 控件被点击时,会执行页面验证。您可以设置 CausesValidation 为 false ,来阻止按钮控件被点击时进行验证。

创建 Validation 服务器控件的语法是:

<asp:control_name id="some_id" runat="server" />

在下面的实例中,我们在 .aspx 文件中声明了一个 TextBox 控件、一个 Button 控件、一个 RangeValidator 控件。如果验证失败,文本 "The value must be from 1 to 100!" 将会显示在 RangeValidator 控件中:

实例

<html>
<body>
<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>

ASP.NET Web Forms – 服务器控件简介相关推荐

  1. asp.net webform 使用 html partial,ASP.NET Web Forms

    ASP.NET Web Forms - 教程 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式: We ...

  2. ASP.NET Web Forms 转换至MVC开发

    作为.NET 阵营的网页开发人员几乎都是从ASP.NET Web Forms开始接触网页开发技术的,所在在这里主要介绍一下Web Forms与MVC的差异. 一.开发概念的转变 MVC既不是程序设计语 ...

  3. ASP.NET Web Forms - 网站导航(Sitemap 文件)

    [参考]ASP.NET Web Forms - 导航 ASP.NET 带有内建的导航控件. 网站导航 维护大型网站的菜单是困难而且费时的. 在 ASP.NET 中,菜单可存储在文件中,这样易于维护.文 ...

  4. ASP.NET2.0 - ASP.net MVC和ASP.net Web Forms

    ASP.NET MVC是一个新的编程模型,而不是替代ASP.NET Web Forms. http://weblogs.asp.net/shijuvarghese/archive/2008/07/09 ...

  5. asp.net mvc 点滴 一 asp.net mvc vs asp.net web forms

    MVC模式是一个大家很熟悉的设计模式,微软的asp.net mvc framework是给asp.net web forms提供了一个可替换的asp.net方案. Models:Model对象是程序的 ...

  6. ASP.NET Web Forms – Repeater 控件简介

    Repeater 控件用于显示被绑定在该控件上的项目的重复列表. 绑定 DataSet 到 Repeater 控件 Repeater 控件用于显示被绑定在该控件上的项目的重复列表.Repeater 控 ...

  7. ASP.NET Web Pages – 文件简介

    用来存储数据的文本文件通常被称为平面文件.常见的文本文件格式是 .txt..xml 和 .csv(逗号分隔值). 使用文本文件 在前面的章节中,我们已经了解到网页数据是存储在数据库中的. 您也可以把站 ...

  8. asp.net web forms page life cycle

    https://msdn.microsoft.com/en-us/library/ms178472.aspx 转载于:https://www.cnblogs.com/dmdj/p/4850540.ht ...

  9. VS2010与.NET4系列 16.ASP.NET 4 Web Forms 更加干净的HTML标记

    从今天开始会有几篇日志,介绍 ASP.NET 4 Web Forms 中的一些重要变化,即生成干净的.标准兼容的.CSS友好的标记.今天介绍对服务器控件向客户呈现"ID"属性的更好 ...

最新文章

  1. 十年沉淀、厚积薄发,百度CTO王海峰秀出NLP十年成果
  2. python是c语言写的吗-C语言是学python的基础吗?
  3. 【OSGI】4.实战OSGI-翻译助手项目02
  4. java array iterator_java数组遍历——iterator和for方法
  5. spock测试_用于混合Spock 1.x和JUnit 5测试的Maven项目设置
  6. 我与ARM的那些事儿2JINLK烧录nor flash
  7. grep sed awk三剑客详解
  8. 服务器按ctrl alt delete没有用_详细教程——用PS制作直邮广告
  9. SAP License:CO生产订单
  10. Python 判断变量类型
  11. 谷歌修复 Chrome 站点隔离绕过漏洞
  12. No module named ‘pyqt5‘解决办法
  13. Android 系统各个版本上https的抓包
  14. 李洪强iOS开发之OC[011] - 有参方法的声明实现以及调用练习
  15. SQL如何进行帕累托分析?(窗口函数、累计百分比分类)
  16. 原始JDBC连接与封装后的JDBC
  17. 计算输入的正数和负数个数
  18. 多元一次不定方程解的个数
  19. 具有外内学习和单色瓶颈的图像修复——两阶段渐进式图像修复示例【CVPR 2021】
  20. RabbitMQ-客户端源码之ChannelManager

热门文章

  1. Python设计模式-享元模式
  2. Selenium提取数据之标签对象提取文本内容和属性值
  3. 计算机网络拓扑结构 以下关于星型网络拓扑结构的描述正确的是______。 (多选题 )
  4. CNN模型之MobileNet
  5. 教程 | 单级式目标检测方法概述:YOLO与SSD
  6. 计算机视觉模型效果不佳,你可能是被相机的Exif信息坑了
  7. 基础 | 深度学习与神经网络-介绍
  8. 实战:使用 Python 用不到 10 行代码计算汽车数量
  9. 深度学习中的噪声数据该如何处理?
  10. JavaEE——JavaScript