asp.net组件开发(C #) 二 代码解析

来源:互联网 发布:无线淘宝logo尺寸 编辑:程序博客网 时间:2024/06/12 02:08
 本篇主要解析上篇内容中的代码及其作用,上篇中组件类的代码如下:             

                         using System;
      using System.Web.UI;
      using System.ComponentModel;
      using System.Text;                                          

                        //这四句代码是引入命名空间。ComponentModel这个命名空间是制作组件不可缺少的。

 

      [assembly:TagPrefix("MyLibrary", "MyComponet")]

                        //使用TagPerfix()来标示自定义组件的标记前缀,这样,就可以使用标记前缀来调用组件了。本例中我们建立的命名空间名为MyLibrary,但是我想使用MyComponent这个名字来调用控件,就需要在开始部分加入此句代码。加入代码后,组件在页面中的调用代码如下:

                          <MyCompnent:Hello Text="这是我的简单组件" runat=server></Mycomponent:Hello>

                          

      namespace MyLibrary    //命名空间
      {
            [DefaultProperty("Text"), ToolboxData("<{0}:Hello runat=server></{0}:Hello>")]

                                    //DefaultProperty(“Text”):此句代码是制定组件的默认属性,属性名称为Text。

                                    //ToolboxData("<{0}:Hello runat=server></{0}:Hello>"):此句代码的作用是指定当从 Visual Studio 等工具中的工具箱拖动自定义控件时为它生成的默认标记。如果我们想让这个组件在添加时就有默认的Text值,那么只需要修改如下: ToolboxData("<{0}:Hello text=这是我的组件 runat=server></{0}:Hello>"),这样先


            public class Hello:Control              //定义了一个Control类,一般组件都是继承于System.Web.UI.Contro                        类或 System.Web.UI.Control.WebControl类
            {
                  private string text;         //定义一个私有变量  text
                  public Hello()                //析构函数,用于创建Hello类时执行
                  {
                  }
                  [Bindable(true),Category("Appearance"),DefaultValue("HelloAspNet")]

                                                  //表示下面的属性显示在IDE界面的属性中
                  public String Text
                  {
                        get { return text; }
                        set { text = value; }
                  }

                  protected override void Render(HtmlTextWriter writer)

                                                   //重写 Render函数 组件在编辑或发布后的显示效果,Render函数是每个组件类都需要写的一个函数,用于输出组件在页面中的显示情况。
                  {
                        writer.Write(Text);
                        base.Render(writer);
                  }
            }
      }

原创粉丝点击