【转】【Asp.Net】asp.net服务器控件创建
VS新建一个Web服务控件工程,会默认生成以下代码:
namespace WebControlLibrary
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:HelloWorld runat=server></{0}:HelloWorld>")]
public class HelloWorld : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? "[" + this.ID + "]" : s);
} set
{
ViewState["Text"] = value;
}
} protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
刚开始接触ASP.NET控件和组件开发,第1个疑问就是DefaultProperty 、ToolBoxData分别是什么含义?
[DefaultProperty("Text")]
[ToolboxData("<{0}:HelloWorld runat=server></{0}:HelloWorld>")]
DefaultProperty是设置控件默认的属性的。
ToolBoxData的意思是当你将这个控件从工具箱中拖放到WebForm中时在aspx文件的HTML代码中添加的对该控件的定义。
这里面的{0}表示什么意思?
控件的标记的前缀 就是你拖这个控件到页面上时候 他就自动添加<{0}:HelloWorld runat=server></{0}:HelloWorld>,这个{0}是你定义的。
那究竟{0}如何定义呢?
修改Visual Studio自动产生的代码,增加下面的一行
[assembly: TagPrefix("WebControlLibrary", "aspNet")]
namespace WebControlLibrary
{
//其他代码不变
}
重新生成控件项目。
新建网站,把新生成的控件拖到新建的Web窗体上,切换到源视图状态,可以看到控件定义标记为:
<aspNet:HelloWorld ID="HelloWorld1" runat="server" />
其中的aspNet正是我们用[assembly: TagPrefix("WebControlLibrary", "aspNet")]定义的。
同时,在使用页面上部可以看到如下的标记:
<%@ Register assembly="WebControlLibrary" namespace="WebControlLibrary" tagprefix="aspNet" %>
再查一下msdn,TagPrefixAttribute的基本使用:
public TagPrefixAttribute( string namespaceName, string tagPrefix )
当然,自定义ASP.NET服务器控件TagPrefix,也可以修改网站的Web.config文件:
<configuration>
<system.web>
<pages>
<controls>
<add assembly="WebControlLibrary" namespace="WebControlLibrary" tagPrefix="AspNet"/>
</controls>
</pages>
</system.web>
</configuration>
<!--也可以在使用的页面添加下面这句进行注册控件-->
<%@ Register assembly="WebControlLibrary" namespace="WebControlLibrary" tagprefix="aspNet" %>
这样,拖动控件到页面上时,控件的tagPrefix为AspNet:
<AspNet:HelloWorld ID="HelloWorld1" runat="server" />
原文地址:http://www.cnblogs.com/zhouhb/archive/2012/04/16/2452783.html
【转】【Asp.Net】asp.net服务器控件创建的更多相关文章
- 一个在ASP.NET中利用服务器控件GridView实现数据增删改查的例子
备注:这是我辅导的一个项目开发组的一个例子,用文章的方式分享出来,给更多的朋友参考.其实我们这几年的项目中,都不怎么使用服务器控件的形式了,而是更多的采用MVC这种开发模式.但是,如果项目的历史背景是 ...
- ASP.NET 2.0服务器控件开发的基本概念(转载)
利用ASP.NET 2.0技术,创建Web自定义服务器控件并不是一件轻松的事情.因为,这需要开发人员了解并能够灵活应用多种Web开发技术,例如,CSS样式表.客户端 脚本语言..NET开发语言.服务器 ...
- 【ASP.NET】Validation 服务器控件
Validation 服务器控件 Validation 服务器控件用于验证输入控件的数据.如果数据未通过验证,则向用户显示错误消息. 创建 Validation 服务器控件的语法是: <asp: ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- ASP.NET Web API 过滤器创建、执行过程(二)
ASP.NET Web API 过滤器创建.执行过程(二) 前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器 ...
- ASP.NET Web API 过滤器创建、执行过程(一)
ASP.NET Web API 过滤器创建.执行过程(一) 前言 在上一篇中我们讲到控制器的执行过程系列,这个系列要搁置一段时间了,因为在控制器执行的过程中包含的信息都是要单独的用一个系列来描述的,就 ...
- ASP.NET Web API 控制器创建过程(二)
ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...
- ASP.NET Web API 控制器创建过程(一)
ASP.NET Web API 控制器创建过程(一) 前言 在前面对管道.路由有了基础的了解过后,本篇将带大家一起学习一下在ASP.NET Web API中控制器的创建过程,这过程分为几个部分下面的内 ...
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序创建更复杂的数据模型
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第六篇:为ASP.NET MVC应用程序 ...
随机推荐
- Atitit。 工作流引擎的发展趋势
Atitit. 工作流引擎的发展趋势 1.1. 图灵完备1 1.2. 图形化与文本化1 1.3. Jit1 1.4. Dsl化2 1.5. Oo2 1.6. 托管与本地代码的互操作2 1.7. 大型 ...
- 转:使用Nlog记录日志到数据库
原文:http://www.cnblogs.com/Gyoung/archive/2012/10/18/2729613.html Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台, ...
- [leetcode] Contains Duplicate II
Contains Duplicate II Given an array of integers and an integer k, find out whether there there are ...
- MyBatis入门(三)---多个参数
一.建立表 1.1.建立表,并插入数据 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.6.27-log : Database - mybatis *** ...
- Cent OS服务器配置(JDK+Tomcat+MySQL)
本文摘自:Cent OS服务器配置(JDK+Tomcat+MySQL) 学习tar解压 解压 tar 文件 tar -zxvf apache-tomcat-6.0.35.tar.gz tomcat ...
- 解决log4j:WARN Error initializing output writer. log4j:WARN Unsupported encoding?的问题
异常名:log4j:WARN Error initializing output writer. log4j:WARN Unsupported encoding? 异常截图: 在一般的javaweb项 ...
- sgu 104 Little shop of flowers 解题报告及测试数据
104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的 ...
- IOS沙盒Files目录说明和常用操作
Ios沙盒目录清单 1 Documents 用于存储用户生成的文件.其他数据及其他程序不能重新创建的文件,默认文件通过iCloud自动备份.如果不需要iCloud备份,则设置标记 NSURLIsExc ...
- hibernate一对一关系实现
按照主键映射,按照外键映射 Address.hbm.xml: <?xml version="1.0"?><!DOCTYPE hibernate-mapping P ...
- 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发
第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...