本文目的:

创建一个不是继承其他服务器控件的完全自定义控件。





    在《​​在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>”。


===================================================================

原创不容易,转载请注明出处​

相关链接:

  1. ​在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目​
  2. ​在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中​
  3. ​在VS2008中创建自定义控件(三)在网页中添加自定义控件​
  4. ​在VS2008中创建自定义控件(四)为自定义控件添加默认值​
  5. ​在VS2008中创建自定义控件(五)修改tagprefix​
  6. ​在VS2008中创建自定义控件(六)创建完全自定义控件​
  7. ​在VS2008中创建自定义控件(七)自定义控件的中常用到的特性​
  8. ​在VS2008中创建自定义控件(八)输出HTML代码​
  9. ​在VS2008中创建自定义控件(九)添加属性​
  10. ​在VS2008中创建自定义控件(十)添加枚举型属性​
  11. ​在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)​
  12. ​在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)​
  13. ​在VS2008中创建自定义控件(十三)添加内镶属性​
  14. ​在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级​
  15. ​在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法​

===================================================================