本文目的:
创建一个不是继承其他服务器控件的完全自定义控件。
在《在VS2008中创建自定义控件(三)在网页中添加自定义控件》和《在VS2008中创建自定义控件(四)为自定义控件添加默认值》中介绍的自定义控件都是直接继承了TextBox服务器控件的自定义控件,事实上,asp.net中允许创建一个完全的自定义控件,也就是不从任何一个服务器控件中继承的自定义控件。
首先,我们在自定义控件项目中添加一个新的“asp.net服务器控件”,命名为“myCustomControl.cs”,如下图所示。
添加完之后,VS会自动为myCustomControl.cs添加一些代码,如下图所示:
从上图中我们可以看出,在默认情况下,VS让自定义控件继承了WebControl类,这个类是所有控件的基类。如果你不想让自定义控件继承任何一个服务器控件的话,那么你就可以让你的自定义控件继承这个类。
WebControl类在默认情况下,将会生成一对封闭的<span></span>标签,你可以将需要生成的代码放在这对标签里(不过这是后话了)。
现在,我们在网站项目里添加一个Default.aspx文件,在设计视图里将自定义的myCustomControl控件拖入到网页中,此时Default.aspx的源代码如下所示。
我们仔细看一下上图中的第二个圆圈中的文字,这段文字也是由VS自动生成的,而生成这段文字的依据是在自定义控件的cs文件中,如下所示。
从上图中我们可以看出,网页源代码中的内容是根本上图的ToolboxData属性值产生的,而该项属性值中的{0}就是前面我们定义的别名。
这是一个最简单的自定义控件,而这个控件的作用只是在网页的相应位置添加一个<span></span>标签,我们可以生成解决方案后在浏览器中查看一下运行结果——当然从运行结果中,我们什么也看不到,不过我们可以看一下生成的网页的源代码,如下图所示。
从上图中我们可以看到这个自定义控件的最后生成的代码为“<span id="myCustomControl1"></span>”。
===================================================================
原创不容易,转载请注明出处:http://hi.csdn.net/smallfools
相关链接:
===================================================================