Asp.net 简明教程
ASP.NET - Client Side
ASP.NET 客户端代码编制有两个方面:
-
Client side scripts :它在浏览器上运行,并依次加快页面的执行速度。例如,客户端数据验证可以捕获无效数据并相应地警告用户,而无需往返于服务器。
-
Client side source code :ASP.NET 页面生成此代码。例如,ASP.NET 页面的 HTML 源代码包含许多隐藏字段和自动注入的 JavaScript 代码块,这些代码块保持视图状态等信息或执行其他作业以使页面正常工作。
Client Side Scripts
所有 ASP.NET 服务器控件均允许对使用 JavaScript 或 VBScript 编写的客户端代码进行调用。一些 ASP.NET 服务器控件使用客户端脚本向用户提供响应而无需回发给服务器。例如,验证控件。
除了这些脚本以外,按钮控件有一个 OnClientClick 属性,当单击按钮时允许执行客户端脚本。
传统的服务器 HTML 控件具有在引发时可以执行脚本的以下事件:
Event |
Description |
onblur |
当控件失去焦点时 |
onfocus |
当控件收到焦点时 |
onclick |
当控件被单击时 |
onchange |
当控件的值发生变化时 |
onkeydown |
当用户按下某个键时 |
onkeypress |
当用户按下某个字母数字键时 |
onkeyup |
当用户释放某个键时 |
onmouseover |
当用户将鼠标指针移到控件上时 |
onserverclick |
当单击控件时,会引发控件的 ServerClick 事件 |
Client Side Source Code
我们已经讨论了,通常情况下,ASP.NET 页面会写入两个文件中:
-
内容文件或标记文件 (.aspx)
-
The code-behind file
内容文件包含 HTML 或 ASP.NET 控件标记和文本,以形成页面的结构。代码位于文件中包含类定义。在运行时,将对内容文件进行解析并将其转换为页面类。
此类与代码文件中的类定义以及系统生成的代码一起,组成了可处理所有已发布数据、生成响应并将其发回给客户端的可执行代码(程序集)。
考虑简单的页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="clientside._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Untitled Page
</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Click" />
</div>
<hr />
<h3> <asp:Label ID="Msg" runat="server" Text=""> </asp:Label> </h3>
</form>
</body>
</html>
当在浏览器上运行此页面时,查看源代码选项会显示 ASP.NET 运行时发送到浏览器的 HTML 页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>
Untitled Page
</title>
</head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKMTU5MTA2ODYwOWRk31NudGDgvhhA7joJum9Qn5RxU2M=" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"
value="/wEWAwKpjZj0DALs0bLrBgKM54rGBhHsyM61rraxE+KnBTCS8cd1QDJ/"/>
</div>
<div>
<input name="TextBox1" type="text" id="TextBox1" />
<input type="submit" name="Button1" value="Click" id="Button1" />
</div>
<hr />
<h3><span id="Msg"></span></h3>
</form>
</body>
</html>
如果您正确浏览代码,您会看到前两个 <div> 标记包含存储视图状态和验证信息的隐藏字段。