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

實(shí)例

ASP.NET 頁面是由大量的服務(wù)器控件以及 HTML 控件、文本和圖像組成的。頁面的敏感數(shù)據(jù)和頁面上的不同控件狀態(tài)被儲(chǔ)存在隱藏字段中,組成了頁面請(qǐng)求的配置指令。

ASP.NET 運(yùn)行時(shí)控制一個(gè)頁面實(shí)例和其狀態(tài)的關(guān)聯(lián)。一個(gè) ASP.NET 頁面是一個(gè)頁面的對(duì)象或者從之繼承而來。

頁面上所有的控件同樣也是從一個(gè)父類控件繼承而來的相關(guān)控件類的對(duì)象。當(dāng)一個(gè)頁面運(yùn)行時(shí),對(duì)象頁面的一個(gè)實(shí)例就隨其內(nèi)容控件一起被創(chuàng)建。

一個(gè) ASP.NET 頁面同樣也是儲(chǔ)存在 .aspx 延伸的服務(wù)器端文件。

它在本質(zhì)上是模塊化的,并且可被分成以下幾個(gè)核心部分:

  • 網(wǎng)頁指令
  • 編碼區(qū)段
  • 頁面布局

頁面指令

頁面指令為頁面設(shè)置運(yùn)行環(huán)境。@Page 指令定義了使用 ASP.NET 頁面解析器和編譯器的特殊頁面屬性。頁面指令指定應(yīng)該如何處理頁面,并指定對(duì)頁面需要采取的假設(shè)。

它允許導(dǎo)入命名空間、加載程序集和注冊(cè)新的控件,包括自定義標(biāo)記名稱和命名空間前綴。

編碼區(qū)段

編碼區(qū)段為頁面和控件即其他所需功能提供處理程序。我們提到,ASP.NET 遵從對(duì)象模型?,F(xiàn)在,當(dāng)一些事件在用戶界面發(fā)生,這些對(duì)象會(huì)激發(fā)事件,比如說一個(gè)用戶點(diǎn)擊了一個(gè)按鈕或者移動(dòng)了光標(biāo)。這些事件需要往復(fù)的這類響應(yīng)是在事件處理程序功能里編碼的。事件處理程序除了綁定到空間上的功能就沒什么了。

編碼區(qū)段或者文件后的編碼提供了對(duì)于所有這些事件處理程序的路線,以及其他開發(fā)者使用的功能。頁面代碼可以預(yù)編譯和以二進(jìn)制匯編的形式進(jìn)行部署。

頁面布局

頁面布局提供了頁面的界面。它包含服務(wù)器控件、文本和內(nèi)聯(lián)的 JavaScript 和 HTML 標(biāo)簽。

下面的代碼片段提供了一個(gè) ASP.NET 頁面的示例,解釋了用 C# 編寫的頁面指令、代碼區(qū)段和頁面布局:

<!-- directives -->
<% @Page Language="C#" %>

<!-- code section -->
<script runat="server">

   private void convertoupper(object sender, EventArgs e)
   {
      string str = mytext.Value;
      changed_text.InnerHtml = str.ToUpper();
   }
</script>

<!-- Layout -->
<html>
   <head> 
      <title> Change to Upper Case </title> 
   </head>

   <body>
      <h3> Conversion to Upper Case </h3>

      <form runat="server">
         <input runat="server" id="mytext" type="text" />
         <input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/>

         <hr />
         <h3> Results: </h3>
         <span runat="server" id="changed_text" />
      </form>

   </body>

</html>

復(fù)制此文件到 web 服務(wù)器的根目錄。一般的是 c:\iNETput\wwwroot。從瀏覽器中打開文件然后執(zhí)行,它就會(huì)生成以下結(jié)果:

http://wiki.jikexueyuan.com/project/asp-net/images/asp.net_first_example.jpg" alt="image" />

使用 Visual Studio IDE

讓我們用 Visual Studio IDE 展開同樣的例子。你可以直接拖拽控件到設(shè)計(jì)視圖,而不用輸入代碼。

http://wiki.jikexueyuan.com/project/asp-net/images/asp.net_first_example2.jpg" alt="image" />

內(nèi)容文件會(huì)自動(dòng)生成。你只需添加的是 Button1_Click 代碼,即如下所示:

protected void Button1_Click(object sender, EventArgs e)
{
   string buf = TextBox1.Text;
   changed_text.InnerHtml = buf.ToUpper();
}

內(nèi)容文件代碼已給出:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
   Inherits="firstexample._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" style="width:224px">
            </asp:TextBox>

            <br />
            <br />

            <asp:Button ID="Button1" runat="server" Text="Enter..." style="width:85px" onclick="Button1_Click" />
            <hr />

            <h3> Results: </h3>
            <span runat="server" id="changed_text" />

         </div>
      </form>

   </body>

</html>

通過右鍵點(diǎn)擊設(shè)計(jì)視圖來執(zhí)行此示例,并且從彈出菜單中選擇 ‘View in Browser’。這將生成以下結(jié)果:

http://wiki.jikexueyuan.com/project/asp-net/images/asp.net_first_example3.jpg" alt="image" />