ASP.NET总结——Web自定义控件

       北大青鸟ASP.NET的视频,向我们介绍了用户控件和自定义控件。

       先简单说一下这两者的明显的区别。

  • 用户控件的扩展名为.aspx;自定义控件的扩展名为.dll。
  • 用户控件使用时,需要把该文件放到应用程序的目录下;自定义控件使用时,则可以把它添加到工具箱。

       这里,我主要介绍怎么创建Web自定义控件。

       在VS2010中,已经没有Web控件库了,那怎么办哩?

       看看自定义控件的类型.dll,你有没有想到什么呢?还记不记得我们的DAL.dll,BLL.dll……,那么从本质上说,它们是一样的东西。

       所以,第一步,我们首先建立一个类库。

       ASP.NET总结——Web自定义控件_第1张图片

       图中标注“注意”处:这个类库的.NET Framework版本要和你的Web应用程序的.NET Framework版本一致,否则之后在工具箱中添加该自定义控件时,控件显示为灰色,不可用。

       第二步,添加一个类。

         ASP.NET总结——Web自定义控件_第2张图片

       第三步,添加引用——System.Web

       第四步,在类中引入命名空间:System.Web 和System.Web.UI

       第五步,给这个自定义控件添加属性,以下代码,是给该控件添加一个Text属性。

       

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI ;//HtmlTextWriter 在此命名空间下
using System.ComponentModel;

namespace ClassLibrary1
{
    /// <summary>
    /// WebCustomControl1的摘要说明
    /// </summary>
    [DefaultProperty ("Text"),ToolboxData ("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
    public class WebCustomControl1:System .Web .UI .WebControls .WebControl 
    {
        private string text;
        /// <summary>
        /// Text属性
        /// </summary>
        public string Text
        {
            get { return text; }
            set { text = value; }

        }
        /// <summary>
        /// 将此控件呈现出给定的HTML编写器
        /// </summary>
        /// <param name="output">要写出的HTML编写器</param>
        protected  override void Render(HtmlTextWriter output)
        {
            this.Text = "<font size=18px><b>你好</b></font>";
            output.Write(Text);
        }
    }
}

       第六步,生成类库。

       第七步,新建一个ASP.NET程序,新建一个Web窗体,在工具箱的空白处右击——选择项——浏览——找到刚才你创建的那个类库文件夹下的Debug文件下的Bin文件夹(如:ClassLibrary1\Debug\Bin\ClassLibrary1.dll)

       找到该文件后,在它前面打勾,确定。如图:

       ASP.NET总结——Web自定义控件_第3张图片

       

       这个时候在工具箱中应该能看到它,如果看不到,请在空白处右击——显示全部。

            ASP.NET总结——Web自定义控件_第4张图片


       然后把控件直接拖到设计窗口,如图:

       ASP.NET总结——Web自定义控件_第5张图片

       看来,自己制作控件也是很简单的啊!

你可能感兴趣的:(Web自定义控件)