ASP.NET客戶端

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

  • 客戶端腳本:它運行在瀏覽器上,進而加速頁面的執行。 例如,可以捕獲無效數據的客戶端數據驗證,並相應地警告用戶而不進行往返服務器交互。

  • 客戶端源代碼:ASP.NET頁面生成這個。 例如,ASP.NET頁面的HTML源代碼包含許多隱藏的字段,並自動注入了JavaScript代碼塊,這些代碼保留了諸如視圖狀態之類的信息,或者執行其他工作來使頁面工作。

客戶端腳本

所有ASP.NET服務器控件都允許調用使用JavaScript或VBScript編寫的客戶端代碼。 一些ASP.NET服務器控件使用客戶端腳本來爲用戶提供響應而不回發給服務器。 例如,驗證控件。

除了這些腳本之外,Button控件還有一個屬性OnClientClick,它允許在單擊按鈕時執行客戶端腳本。

傳統和服務器HTML控件具有以下事件,可以在引發時執行腳本:

編號

事件

描述

1

onblur

當控件失去焦點時觸發

2

onfocus

當控件收到焦點時觸發

3

onclick

點擊控件時觸發

4

onchange

當控件的值改變時觸發

5

onkeydown

當用戶按下一個鍵時觸發

6

onkeypress

當用戶按下字母數字鍵時

7

onkeyup

當用戶釋放一個鍵時

8

onmouseover

當用戶將鼠標指針移到控件上時

9

onserverclick

當控件被點擊時,它會引發控件的ServerClick事件

客戶端源代碼

我們已經討論和學習過了,ASP.NET頁面一般都是用兩個文件寫成的:

  • 內容文件或標記文件(.aspx)
  • 代碼隱藏文件(.cs)

內容文件包含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>標籤包含隱藏的字段,用於存儲視圖狀態和驗證信息。

易百教程移動端:請掃描本頁面底部(右側)二維碼並關注微信公衆號,回覆:"教程" 選擇相關教程閱讀或直接訪問:http://m.yiibai.com

上一篇:ASP.NET HTML服務器 下一篇:ASP.NET基本控件

加QQ羣啦,易百教程官方技術學習羣

QQ羣名稱

羣號

人數

免費

等級

羣介紹

JAVA技術

227270512

2000

LV5

Java基礎,JSP(Servlet),JAVA框架,Java高併發架構,Maven等等

MySQL/SQL

418407075

2000

LV5

SQL基礎,MySQL基礎,MySQL存儲過程,視圖,觸發器等等

大數據開發

655154550

2000

LV5

Spark,zookeeper,kafka,CDH,hive,fulme,hbase等Hadoop雲計算生態圈技術

Python技術

287904175

2000

LV5

Python編程,Python Web,Python大數據,Python爬蟲,自然語言處理等

Linux技術

479429477

2000

LV1

Redhat/Centos,Ubuntu,Shell,運維,監控等技術

PHP/Web開發者

460153241

1000

LV0

PHP基礎,PHP高級,網站優化/架構,JS,HTML,JQuery,前端等Web開發技術

人工智能

456236082

1000

LV0

人工智能,深度學習,算法等技術

Oracle數據庫

175248146

1000

LV0

SQL基礎,Oracle基礎,Oracle存儲過程,視圖,觸發器等等

Android開發

159629185

1000

LV0

Android開發,Android Studio,Kotlin,Dagger等技術

微軟技術

579821706

1000

LV0

C#,ASP.Net,VB.Net,ADO.Net,SQL Server,VBA,Excel等技術