ASP.NET-控件篇
ASP.NET-控件篇
对于ASP.NET的控件,微软进⾏了封装,根本就是看不到源代码。从⽽产⽣了⾃⼰编写控件的模式。也产⽣了很多的第三⽅控件。对于这些控件,都是实现了微软的⽅法才可以运⾏
在.NET平台中。下⾯我们来看看⼀些简单的控件的编写。
当然⾸当其冲的就是⽤户控件,对于⽤户控件。他的编写可能会很⽅便。没有那么多的复杂的代码量。对于⽤户控件后缀名是.ascx,它的编码⽅式和页⾯的编码⽅式其实没什么很⼤的区别,关键点就是在于他们之间的调⽤。对于页⾯调⽤和控件直接值得的传递,⽅法的调⽤,如何能够在本页⾯中调⽤控件中的⽅法。这是很关键的。其实这⾥⼤家可能第⼀就是委托了。通过委托让他们直接有沟通的桥梁。说道这⾥确实是这样的。对于委托,这⾥名词,对于初学者是很难理解的。就算理解了字⾯的意思,也不是很明⽩代码之间的意思吧!下⾯我们来开⽤户控件的代码。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication2.UserControl.WebUserControl1" %>对于这句代码的各个部分的说明:
⾸先指明⼀点就是<%@%>这个标⽰符,表⽰对于控件的命名空间的引⽤,并不是很难理解。Control La
nguage表⽰编写控件所需要的语⾔,AutoEventWireup表⽰是否⾃动回传到服务器端,默认情况是true,CodeBehind表⽰控件所定义的后台代码⽂件名称,Inherits表⽰指定要继承的CodeBehind类。当然这些都是VS⾃动回产⽣的。不⽤⼿动编码了。
这是控件的后台页⾯,可能会很熟悉。当然这就是和页⾯类很相似了。对于它的实现。只需要从⼯具箱中拖⼊所需要的控件,进⾏排版就可以了。
控件的使⽤:
当然控件完成后编译⽣成。⽤户控件的使⽤分为两种:直接在页⾯注册和在配置⽂件中配置。
想说前者;在页⾯注册⽤户控件。
<%@ Register src="UserControl/WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>
对于这句代码就是⽤户控件需要在使⽤它的页⾯进⾏注册。Src表⽰控件的相对路径,tagname表⽰控件的名称,tagprefix表⽰控件的前缀,这点对于服务器控件都是⼀样的,想
想button就是这样的它的前缀都是asp开头,所以每次使⽤⽤户控件都是很不⽅便都要在每个页⾯配置,
这样式不利于维护的。所以微软就推荐使⽤第⼆种了,将注册的代码编写到配置⽂件中。对于配置⽂件确实很强⼤。需要记住的东西也是很多的。
对于配置中的Src表⽰的是虚拟路径,⽽在页⾯中使⽤的相对路径。这点是要注意的。
还有就是每个控件都会有⾃⼰的属性和⽅法。
对于属性的暴露,⽤户控件的暴露是很容易的直接在控件的后台代码中公开所需要的属性。
public int Name { get; set; }
public string Text { get; set; }
下⾯看⼀张图表
⽐较⽤户控件页⾯
后缀名.ascx.aspx
指令@Control@Page
继承System.Web.UI.UserControl System.Web.UI.Page
包含可以包含控件和其他的⽤户控
件,也可以被其他⽤户控件和页
⾯包含可以包含控件和所有⽤户控件,但是不可以被其他页⾯包含
直接访问不可以直接访问,必须包含在页
⾯中才可以使⽤,
可以
标签不能包含<html>,
asp查看源码配置ui
<body>等HTML标签
可以包含所有HTML标签
编译和运⾏可独⽴编译,但是不能单独运
⾏,不可以直接访问
可以直接访问
特性
设计时的特性:对于这个定义我们不好⽤语⾔来形容,其实就是想⼀个⼈打上很多的标签⼀样,⽤来描述这个⼈的⽅⽅⾯⾯,对于描述性的内容我们可以定义成⼀个类来描述指定的的信息。称之为“特性”;特性也是⼀种类,所有的特性都是继承⾃Attribute这个类,所以要想⾃定义特性就要继承⾃Attribute,⾃定义⼀些⽅法,下⾯我们列举⼏个特性:
特性名称应⽤位置说明
Browsable属性、事件指定属性或事件是否应该
显⽰在窗⼝中,是布尔
值,默认为true,属性
的get语句是必须有的,否
则设置
了Browsable为true也⽆法
看到该属性
Category属性、事件指定属性窗⼝进⾏分组显
⽰时的类别,该特性帮助
可视化编辑器将属性逻辑
分组。通常为:外观
(Appearence)、⾏为
(Behavior)、布局
(Layout)、数
据(Data)等。
Description属性、事件设置显⽰在属性窗⼝最下
⾯的描述属性或事件功能
的⽂字书名
DefaultValue属性指定属性的默认值
DefaultProperty类此特性为类特性。它指定
服务器控件的默认属性
ReadOnly属性指定属性在设计时只读
ToolBoxData类指定把控件从⼯具箱拖放
到页⾯上时的标记的初始
值。默认情况
下,Visual Studio只产
⽣ID和Runat的标记

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。