zoukankan      html  css  js  c++  java
  • ASP.NET控件开发学习笔记第7回 从WebControl继承

     

    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代码2FromWebControl.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");
            }
        }
    }

     

    好分别从ControlWebControl继承作了两个控件,下面编译它们。新建一个Compile.bat文件,输入如下代码:

    7-13Compile.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所示:


     

    看看属性上的差别,你应该从视觉上了解它们之间的区别了吧!当然,差别远不止如此,现在比较忙,就讲这么一点,明天再讲。


  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/abatei/p/1087015.html
Copyright © 2011-2022 走看看