首先是要新建一个自定义控件。
自定义控件继承了 System.Web.UI.Control和System.Web.UI.WebControls 前者是不提供UI界面的类。
首先应该新建一个空白解决方案adaiWebCtrl,然后在解决方案里面新建两个项目。/**************在这里碰到了一个小问题,我在一个解决方案里面无法新建两个项目。经过询问,知道是自己的VS设置得问题,我将VS的设置更改为“常规开发设置” 在工具
è导入到处设置
è…Next…
è常规开发设置******************/项目一:命名为adaiCtrl的web应用程序;项目二:命名为TableList的web控件库。对于TableList自动生成的文件,有一个默认命名,但是我们一般都不喜欢这个默认的名字,所以我们可以把他改一下。/***************后面会给你解决改动后出现问题的方法******************/
新建项目后需要设置启动项目和依赖项目,右键点击解决方案可以设置。将adaiCtrl项目设置为启动项目;将TableList设置为adaiCtrl的依赖项目/*************也就是说adaiCtrl依赖于TableList项目*******************/。这两个项目设置成如此关系,在调试时adaiCtrl可以显示出TableList的效果了。当然这还需要在adaCtrl中注册这个控件,首先好像是要往adaiCtrl中添加TableList的引用/*************简单的复制是不行的,最起码他不会自动更新***************/
有了这些,下面我们似乎是应该把控件添加到web页面了。呵呵,向页面添加如下代码:
<%
@
Register
TagPrefix="adaiWebCtrl" TagName="TableList"Namespace="adaiWebCtrl" Assembly="TableList" %>
这行代码是向页面注册你所编写的控件,其
中TagPrefix
="adaiWebCtrl"是表示你的控件的前缀名是 adaiWebCtrl,就想用一般控件时代码中会有:
<asp:这个东西一样。然后呢就是
Namespase
也就是命名控件,这个命名空间是和你的TableList项目中的AssemblyInfo.cs文件中的NameSpace对应的。/****************同时AssemBlyInfo.cs中的内容可以在 项目
è
属性中做设置,但是有时候,属性中的东西和Assembliinfo.cs中的东西并不是对应的,这就需要你手动的更改一下了,辛苦了,hehe***************/最后是Assembly 也就是程序集名,它的填写和设置和前面的Namespace一样。这里还有一个 TagName和
Src标签,他们两个好像是在做用户控件是用到的。当然了,如果每个页面都要使用这个控件,我们就要杂每个页面使用
register语句。似乎颇为麻烦,呵呵。哪我们就把它转移到web.config中去把,在
<
system.web
></
system.web
>
节中添加如下代码:就可以不用每个页面都添加register语句了。
<
pages
>
<!--
注册控件
-->
<
controls
>
<
add
tagPrefix
=
"adaiWebCtrl"namespace="adaiWebCtrl"assembly="TableList" />
</
controls
>
</
pages
>
2008年4月14日13:41:58