首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 Web 與 HTML 伺服器控制項:從基礎控制項到豐富元件完整解析

     編輯:關於ASP.NET

伺服器控制項核心優勢

  • 自動狀態保持:ViewState 機制跨回傳保留使用者輸入,無需手動重新繫結。
  • 豐富物件模型:屬性、方法、事件完整封裝,程式碼操作直覺。
  • 宣告式開發:.aspx 標記直接設定屬性、繫結事件、資料來源。
  • 自適應渲染:依瀏覽器能力輸出 HTML 4.0 / XHTML / 行動裝置標記。
  • 設計時支援:Visual Studio 拖曳、屬性視窗、智慧標籤、即時預覽。

兩大控制項家族

HTML 伺服器控制項

對應原生 HTML 標籤,加上 runat="server"。命名空間 System.Web.UI.HtmlControls。

HTML 標籤伺服器控制項類別關鍵屬性/事件
<form>HtmlFormAction, Method, Submit 事件
<input type="text">HtmlInputTextValue, MaxLength, Size, ServerChange
<input type="checkbox">HtmlInputCheckBoxChecked, ServerChange
<select>HtmlSelectItems, SelectedIndex, ServerChange
<img>HtmlImageSrc, Alt, Align
<table>HtmlTableRows, Cells, Border, CellPadding
其他無對應標籤HtmlGenericControlTagName, InnerHtml, InnerText

範例:

<form id="form1" runat="server">
    <h3>姓名:<input type="text" id="txtName" runat="server" /></h3>
    <select id="ddlCategory" runat="server">
        <option>心理學</option>
        <option>商業</option>
    </select>
    <input type="submit" value="查詢" runat="server" />
</form>

Web 伺服器控制項

功能更豐富、抽象層次更高、標記前綴 asp:。命名空間 System.Web.UI.WebControls。

控制項用途關鍵特性
TextBox文字輸入TextMode (Single/MultiLine/Password), AutoPostBack, TextChanged
Button命令按鈕CommandName, CommandArgument, Click, Command
DropDownList下拉選單Items, SelectedValue, AppendDataBoundItems, SelectedIndexChanged
GridView資料表格資料繫結、分頁、排序、編輯、樣板、樣式
AdRotator輪播廣告AdvertisementFile (XML), KeywordFilter, Impressions
Calendar日期選擇SelectedDate, VisibleDate, SelectionMode, DayRender
Wizard精靈導航WizardSteps, FinishComplete, Next/Previous 按鈕自動管理

AdRotator 範例:動態廣告輪播

<form runat="server">
    <asp:AdRotator ID="adRotator" runat="server"
        AdvertisementFile="~/App_Data/Ads.xml"
        BorderWidth="1" BorderColor="Black" />
</form>

Ads.xml:

<Advertisements>
  <Ad>
    <ImageUrl>~/images/ad1.jpg</ImageUrl>
    <NavigateUrl>https://example.com/product1</NavigateUrl>
    <AlternateText>產品一優惠</AlternateText>
    <Impressions>80</Impressions>
    <Keyword>electronics</Keyword>
  </Ad>
  <Ad>...</Ad>
</Advertisements>

狀態管理機制

  • ViewState:控制項層級,Base64 編碼儲存於隱藏欄位 __VIEWSTATE,預設啟用。
  • ControlState:關鍵資料(如 GridView 分頁索引),即使關閉 ViewState 也會保持。
  • Session/Application/Cache:跨頁面、跨使用者、伺服器端共享狀態。

事件模型

<asp:Button ID="btnSubmit" Text="送出" OnClick="btnSubmit_Click" runat="server" />
<asp:DropDownList ID="ddl" AutoPostBack="true" OnSelectedIndexChanged="ddl_Changed" runat="server" />

伺服器事件分類:

  • 回傳事件:Click、TextChanged、SelectedIndexChanged → 完整頁面生命週期。
  • 快取事件:Init、Load、PreRender、Unload → 每次請求皆觸發。
  • 資料繫結事件:DataBinding、DataBound → DataBind() 時觸發。

設計時支援

  • 智慧標籤:GridView、DetailsView 等提供快速設定選單(資料來源、欄位、分頁、樣式)。
  • 屬性視窗:分類顯示所有屬性,提供下拉選單、編輯器、色彩選擇器。
  • 即時預覽:Design 檢視直接呈現控制項渲染結果。

選擇指南:HTML vs Web 控制項

情境推薦理由
移植舊 ASP/HTML 頁面、需精確控制輸出標記HTML 伺服器控制項一對一對應、輕量、無額外抽象
新專案、資料密集型表單、需豐富功能(驗證、資料繫結、樣板)Web 伺服器控制項生產力高、功能完整、生態系豐富
行動裝置專用頁面Mobile 控制項 (System.Web.UI.MobileControls)自適應渲染 WML/cHTML/HTML

結語

ASP.NET 2.0 提供完整的伺服器控制項生態系:從輕量的 HTML 伺服器控制項到功能豐富的 Web 伺服器控制項,涵蓋表單輸入、資料呈現、導航、廣告、行動裝置等各類需求。掌握兩大家族特性、事件模型、狀態管理與設計時工具,即能高效打造互動豐富、好維護的 Web 應用程式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved