鍍金池/ 教程/ C#/ 客戶端
調(diào)試
管理狀態(tài)
Panel 控件
Web 服務(wù)
語言集成查詢
數(shù)據(jù)源
基礎(chǔ)控件
廣告輪轉(zhuǎn)器
服務(wù)器端
服務(wù)器控件
ADO.NET
多線程
HTML 服務(wù)器
生命周期
Ajax 控制
客戶端
異常處理
環(huán)境設(shè)置
部署
個性化
驗(yàn)證器
多視圖
日歷
文件上傳
ASP.NET - 數(shù)據(jù)綁定
數(shù)據(jù)庫存取
實(shí)例
自定義控件
簡介
配置
數(shù)據(jù)緩存
安全性
指令
事件處理

客戶端

ASP.NET 的客戶端編碼有兩方面:

  • 客戶端腳本:它在瀏覽器中運(yùn)行并且依次加速頁面的執(zhí)行。例如,客戶端數(shù)據(jù)有效性能夠捕捉無效數(shù)據(jù)并相應(yīng)地提醒用戶而不經(jīng)過在服務(wù)器中回發(fā)。
  • 客戶端源代碼:ASP.NET 網(wǎng)頁形成了該客戶端源代碼。例如,ASP.NET 網(wǎng)頁的 HTML 源代碼包含了若干隱藏區(qū)域并能自動注入 Java 描述語言代碼,從而保留了信息像視圖狀態(tài)一樣,或者進(jìn)行其他工作保證網(wǎng)頁正常運(yùn)作。

客戶端腳本

所有 ASP.NET 服務(wù)器控件都允許響應(yīng)通過 Java 語言或者 VBS 語言繪制的編碼。有些 ASP.NET 服務(wù)器控件端使用客戶端腳本進(jìn)行對用戶需求的反應(yīng),而并沒有回發(fā)到服務(wù)器。例如,數(shù)據(jù)有效性控件。

除了這些腳本,按鈕控件具有恰當(dāng)?shù)?OnClientClick 方法,能夠在按鈕單擊時執(zhí)行客戶端腳本。

傳統(tǒng)服務(wù)器 HTML 控件有以下幾個事件能夠在腳本發(fā)起時執(zhí)行腳本:

事件 屬性
onblur 當(dāng)控件失去焦點(diǎn)時觸發(fā)
onfocus 當(dāng)控件獲得焦點(diǎn)觸發(fā)
onclick 當(dāng)控件被單擊時觸發(fā)
onchange 當(dāng)控件值發(fā)生改變時觸發(fā)
onkeydown 當(dāng)用戶按下鍵盤按鈕時觸發(fā)
onkeypress 當(dāng)用戶按下字母數(shù)字的按鍵時
onkeyup 當(dāng)用戶釋放按鍵時觸發(fā)
onmouseover 當(dāng)用戶移動鼠標(biāo)指針在控件界面時觸發(fā)
onserverclick 當(dāng)控件界面被單擊時,啟動 ServerClick 事件控件

客戶端源代碼

我們已經(jīng)在以上內(nèi)容中討論過了客戶端源代碼。ASP.NET 網(wǎng)頁通常被編寫在兩種文件中:

  • 內(nèi)容文件或者審定文件(.aspx)
  • 代碼后置的文件

內(nèi)容文件包含 HTML 或者 ASP.NET 控件標(biāo)簽和文字來形成頁面結(jié)構(gòu)。代碼后置的文件包含了分類定義。在運(yùn)行時間,內(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>

當(dāng)這個頁面在瀏覽器中運(yùn)行時,View Source 選項(xiàng)顯示了 HTML 網(wǎng)頁并通過 ASP.Net 運(yùn)行時間發(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>

如果恰當(dāng)?shù)貫g覽編碼,您就會發(fā)現(xiàn)前兩個 \<div> 標(biāo)簽包含了存儲的視圖狀態(tài)和有效數(shù)據(jù)的隱藏域。

上一篇:數(shù)據(jù)源下一篇:多線程