您的位置:首页 > 编程语言 > ASP

设置自定义ASP.NET服务器控件TagPrefix的几种方法

2009-01-08 15:13 429 查看
这两天看《道不远人-----深入解析ASP.NET2.0控件开发》这本书,看完第二章内容后,想总结下“设置自定义ASP.NET服务器控件TagPrefix的几种方法”,以便以后查阅,以下面code编写的控件为例,由于重点不是控件编写,所以写了个非常简单的控件,姑且叫它EmailInput

using System;

2using System.Collections.Generic;

3using System.ComponentModel;

4using System.Text;

5using System.Web;

6using System.Web.UI;

7using System.Web.UI.WebControls;

8

9namespace ServerControl

10<pages>

2 <controls>

3 <add assembly="ServerControl" namespace="ServerControl" tagPrefix="sc"/>

4 </controls>

5</pages>
说明:assembly表示控件所在的程序集名称,namespace表示控件的命名空间,tagPrefix就是我们所要设置的项了

方法二、在使用该控件的页面添加<%Register%>指令,如下

<%Code

using System.Reflection;

using System.Runtime.CompilerServices;

using System.Runtime.InteropServices;

using System.Web.UI;

[assembly: TagPrefix("ServerControl","scsc")]
说明:即使这样定义了,每个页面也都要添加<%Register%>指令,这样只是提供了统一的tagPrefix,实质上还是第二种方法

最后对上面的四种方法进行说明:

在Web.config中进行自定义是属于应用程序级别的定义,只注册一次即可对整个应用程序有效。其他三种方法都得在引用该控件的页面添加<%Register%>指令

asp.net定义tagPrefix的检测顺序是:assemblyInfo.cs---->控件中的attribute装饰----->webconfig中的配置,也就是说,如果这几种方法您都设置了,那么asp.net 将会采用webconfig的设置方式!相信这也是asp.net覆盖的简单道理了!

asp.net的自带控件采用了第一种方法,即在 web.config中进行了配置,将tagPrefix配置成了asp,如果您看着不爽,可以改掉它。

以上纯属看书心得,如有错误,恳请您指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: