ASP.NET控制項開發學習筆記–第7回 從WebControl繼承

來源:互聯網
上載者:User
 

第7回 從WebControl繼承

終於看到了《Professional ASP.NET 2.0 Server Control and Component Development》這本書的第三章,第二章有一部分我沒講,就是使用者控制項(ascx控制項),被省略掉了,現在先關註定制控制項。這本書的第三章講的是定製樣式,居然對WebControl的部分源碼進行分析,很強悍啊!而且講得很細緻,建議大家買這本書。由於看英文沒有看中文這麼容易入腦,看第一遍只看了個大概,似懂非懂,再看第二遍就清晰得多了。我們還是從WebControl講起吧。

WebControl是什嗎?有什麼作用?它存在於命名空產間System.Web.UI.WebControls之中,它從Control繼承而來。它和Control類一樣,也是一個用於編寫控制項的基礎類。兩者有什麼不同呢?我們用最直觀的方式來展現兩者的不同之處。建立一檔案“FromControl.cs”,輸入如下代碼:

例7-1代碼1FromControl.cs代碼

using System.Web.UI;
[assembly:TagPrefix("MyControl", "CG")]
namespace MyControl
{
    public class FromControl:Control
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.WriteLine("我繼承自Control");
        }
    }
}

 

再建立一檔案“FromWebControl.cs”,輸入如下代碼:

例7-1代碼2:FromWebControl.cs代碼

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
[assembly:TagPrefix("MyControl", "CG")]
namespace MyControl
{
    public class FromWebControl:WebControl
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.WriteLine("我繼承自WebControl");
        }
    }
}

 

好分別從Control和WebControl繼承作了兩個控制項,下面編譯它們。建立一個Compile.bat檔案,輸入如下代碼:

例7-1碼3:Compile.bat代碼

csc /t:library /out:H:\ASP\bin\FromControl.dll H:\ASP\FromControl.cs
csc /t:library /out:H:\ASP\bin\FromWebControl.dll H:\ASP\FromWebControl.cs
pause

 

記住,路徑不要抄我的,根據你的實際情況來。雙擊Compile.bat批處理在bin檔案夾下產生兩個DLL。然後在Visual Studio中建立一個ASP.NET Web應用程式。並把這兩個控制項添加到工具列中(前面講過這如何把控制項弄進VS了,這裡不再囉嗦)。好,把兩個控制項都放到設計表單中,然後分別選中這兩個控制項,然後觀察屬性視窗,7-1所示:


 

看看屬性上的差別,你應該從視覺上瞭解它們之間的區別了吧!當然,差別遠不止如此,現在比較忙,就講這麼一點,明天再講。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.