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

ASP.NET 伺服器控件開發(二)——繼承 WebControl 類別

     編輯:關於ASP.NET

WebControl 基礎屬性與 Visual Studio 專案範本實作

WebControl vs HtmlControl

特性WebControlHtmlControl
基底類別System.Web.UI.WebControls.WebControlSystem.Web.UI.HtmlControls.HtmlControl
ViewState 支援內建,自動維持狀態無,PostBack 後狀態遺失
事件處理瀏覽器產生事件 → 通知伺服器處理瀏覽器直接處理事件
適用場景需伺服器處理的互動控件即時性高的客戶端事件(鍵盤、滑鼠)

建立 ASP.NET 伺服器控件專案

  1. VS2008 → 新增專案 → ASP.NET 伺服器控件。
  2. 自動產生 MyControl : WebControl 類別,含 Text 屬性與 RenderContents。
新增伺服器控件專案

預設產生代碼解析

[DefaultProperty("Text")]
[ToolboxData("<{0}:MyControl runat=server></{0}:MyControl>")]
public class MyControl : WebControl
{
    [Bindable(true), Category("Appearance"), DefaultValue(""), Localizable(true)]
    public string Text
    {
        get { string s = (string)ViewState["Text"]; return s == null ? "[" + this.ID + "]" : s; }
        set { ViewState["Text"] = value; }
    }

    protected override void RenderContents(HtmlTextWriter output)
    {
        output.Write(Text);
    }
}

關鍵屬性標記說明

  • DefaultProperty:設計工具屬性視窗預設選中屬性。
  • ToolboxData:拖曳至設計面時產生的標記範本。
  • Bindable/Category/DefaultValue/Localizable:屬性視窗分類、預設值、本地化支援。

繼承 WebControl 即享有 BackColor、ForeColor、Border*、Width/Height 等外觀屬性,大幅簡化控件開發。

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