ASP.NET 的客戶端編碼有兩方面:
所有 ASP.NET 服務器控件都允許響應通過 Java 語言或者 VBS 語言繪制的編碼。有些 ASP.NET 服務器控件端使用客戶端腳本進行對用戶需求的反應,而并沒有回發到服務器。例如,數據有效性控件。
除了這些腳本,按鈕控件具有恰當的 OnClientClick 方法,能夠在按鈕單擊時執行客戶端腳本。
傳統服務器 HTML 控件有以下幾個事件能夠在腳本發起時執行腳本:
事件 | 屬性 |
---|---|
onblur | 當控件失去焦點時觸發 |
onfocus | 當控件獲得焦點觸發 |
onclick | 當控件被單擊時觸發 |
onchange | 當控件值發生改變時觸發 |
onkeydown | 當用戶按下鍵盤按鈕時觸發 |
onkeypress | 當用戶按下字母數字的按鍵時 |
onkeyup | 當用戶釋放按鍵時觸發 |
onmouseover | 當用戶移動鼠標指針在控件界面時觸發 |
onserverclick | 當控件界面被單擊時,啟動 ServerClick 事件控件 |
我們已經在以上內容中討論過了客戶端源代碼。ASP.NET 網頁通常被編寫在兩種文件中:
內容文件包含 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>
當這個頁面在瀏覽器中運行時,View Source 選項顯示了 HTML 網頁并通過 ASP.Net 運行時間發送到瀏覽器:
<!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> 標簽包含了存儲的視圖狀態和有效數據的隱藏域。