ASP.NET Web Forms 服务器控件

ASP.NET 服务器控件是服务器可理解的标签

经典 ASP.NET 的局限性

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

<!DOCTYPE html>
<meta charset="utf-8" />
<div style="border:1px solid #ddd;padding:10px;text-align: center;background-color: blue;color:#fff">
<h2>Hello 简单教程!</h2>
<p><% Response.Write(now()) %></p>
</div>

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

通过经典 ASP.NET,想要把可执行代码从 HTML 页面中分离出来是不可能的

这种代码称之为 "意大利面条式代码",他们会让页面变得难以阅读,也难以维护

ASP.NET 服务器控件

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

ASP.NET 服务器控件是服务器可理解的标签

有三种类型的服务器控件

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

ASP.NET HTML 服务器控件

ASP.NET HTML 服务器控件是服务器可理解的 HTML 标签

ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的

要想让这些元素可编程,需向 HTML 元素中添加 runat="server" 属性

这个属性表示,该元素将被作为服务器控件进行处理

同时需要添加 id 属性来标识服务器控件

id 引用可用于操作运行时的服务器控件

注意:

所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内

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

下面的范例中,我们在 .aspx 文件中声明了一个 HtmlAnchor 服务器控件

然后我们在一个事件句柄(事件句柄是一种针对给定事件执行代码的子例程)中操作 HtmlAnchor 控件的 HRef 属性

Page_Load 事件是 ASP.NET 可理解的多种事件中的一种

<script runat="server">Sub Page_Loadlink1.HRef="https://www.twle.cn" End Sub</script>
<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server"><a id="link1" runat="server">简单教程欢迎你!</a></form>

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

ASP.NET Web 服务器控件

ASP.NET 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>
<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
    <asp:Button id="button1" Text="Click me!"runat="server" OnClick="submit"/>
</form>

ASP.NET Validation 服务器控件

ASP.NET 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 控件中

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
<p>Enter a number from 1 to 100:</p>
<p><asp:TextBox id="tbox1" runat="server" /></p>
<p><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>

ASP.NET 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2018 简单教程 twle.cn All Rights Reserved.