ASP.NET 的客戶端編碼有兩方面:
所有 ASP.NET 服務(wù)器控件都允許響應(yīng)通過 Java 語言或者 VBS 語言繪制的編碼。有些 ASP.NET 服務(wù)器控件端使用客戶端腳本進行對用戶需求的反應(yīng),而并沒有回發(fā)到服務(wù)器。例如,數(shù)據(jù)有效性控件。
除了這些腳本,按鈕控件具有恰當?shù)?OnClientClick 方法,能夠在按鈕單擊時執(zhí)行客戶端腳本。
傳統(tǒng)服務(wù)器 HTML 控件有以下幾個事件能夠在腳本發(fā)起時執(zhí)行腳本:
事件 | 屬性 |
---|---|
onblur | 當控件失去焦點時觸發(fā) |
onfocus | 當控件獲得焦點觸發(fā) |
onclick | 當控件被單擊時觸發(fā) |
onchange | 當控件值發(fā)生改變時觸發(fā) |
onkeydown | 當用戶按下鍵盤按鈕時觸發(fā) |
onkeypress | 當用戶按下字母數(shù)字的按鍵時 |
onkeyup | 當用戶釋放按鍵時觸發(fā) |
onmouseover | 當用戶移動鼠標指針在控件界面時觸發(fā) |
onserverclick | 當控件界面被單擊時,啟動 ServerClick 事件控件 |
我們已經(jīng)在以上內(nèi)容中討論過了客戶端源代碼。ASP.NET 網(wǎng)頁通常被編寫在兩種文件中:
內(nèi)容文件包含 HTML 或者 ASP.NET 控件標簽和文字來形成頁面結(jié)構(gòu)。代碼后置的文件包含了分類定義。在運行時間,內(nèi)容文件被解析并被傳送到一個頁面類。
這個頁面類以及在編碼文件中的類的定義和系統(tǒng)生成的編碼共同組成執(zhí)行編碼(集成),這些集成編碼加工所有的回發(fā)數(shù)據(jù),產(chǎn)生響應(yīng)和發(fā)回客戶動作。
思考一下這個簡單頁面:
<%@ 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 網(wǎng)頁并通過 ASP.Net 運行時間發(fā)送到瀏覽器:
<!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>
如果恰當?shù)貫g覽編碼,您就會發(fā)現(xiàn)前兩個 \<div> 標簽包含了存儲的視圖狀態(tài)和有效數(shù)據(jù)的隱藏域。