立即登录 注册新帐号

http://www.chutianz.com - 楚天站长站

会员投稿 匿名投稿 投稿指南 RSS订阅 楚天站长站推荐:
搜索: 您的位置主页 > 网络编程 > .Net编程 > 阅读资讯:ASP.NET 2.0服务器控件开发之简略属性

ASP.NET 2.0服务器控件开发之简略属性

2011-10-08 17:09:36 来源:楚天站长站 【 】 点击:我要投稿 发表评论

 在前面的系列文章中,笔者已经列举了几个实现自定义服务器控件的示例。通过这些示例,读者初步接触了有关创立服务器控件属性的内容。例如,应用私有变量、视图状态、控件状态等实现属性等等。固然读者通过这些内容可以懂得实现属性的一些基础知识,但是这还是不够的。从本节开端,将针对实现自定义服务器控件属性的标题展开讲解。本节重点先容实现自定义服务器控件属性的一些基础概念和简略属性的基础实现方法等内容。

  1. 控件属性基础概念

  本小节先容有关创立服务器控件属性的基础内容,具体内容包含:(1)属性类型和情势;(2)从Control和WebControl持续的属性;(3)与属性相干的设计时元数据attribute。

  1) 属性类型和情势

  通常情况下,服务器控件属性可以分为两种类型:简略属性和复杂属性。

  简略属性是指属性值可以很轻易转换为字符串表达式的属性,这种属性的值通常为Boolean、Byte、Char、Double、Enum、Int32、DateTime等简略数值类型,以及String类型和枚举类型。开发职员可以通过添加代码,将简略属性存储在ViewState字典中,以在回发间进行状态治理。假如一个属性的类型是本身具有属性(称为子属性)的类,则该属性就称为复杂属性。例如,WebControl类的Font属性的类型是本身具有属性(如Bold和Name)的FontInfo类。Bold和Name是WebControl的Font属性的子属性。ASP.NET页框架可通过应用带有连字符的语法(例如Font-Bold='true')在控件的开端标记上保留子属性,但假如在控件的标记(例如<font Bold='true'>)中保留子属性,则子属性在页中的可读性更强。

  在上文中谈到了属性的标记情势,即添加连字符的情势。实际上,不同的属性表现出不同的标记情势。为了加深对简略属性和复杂属性的熟悉,下面先容一下有关属性的4种标记情势。

  · 通用情势属性
 
  这是一种最为常见的属性标记情势。这种情势的属性标记位于控件内部,与runat='server'一起定义。通常为以下情势:

 

<MyControl:CustomerControl id='demo1' runat='server' PropertyName='PropertyValue'/>
  其中PropertyName为一个不带连字符的单词。例如:

<asp:Button id='button1' runat='server' Text='Submit'/>
  此处的属性Text属于通用情势属性。

  · 连字符情势属性

  这种标记情势的属性位于控件标记内部,带有连字符是这种情势属性的最大特点。其情势为:

<MyControl:CustomerControl id='demo1' runat='server' Sub-PropertyName='PropertyValue'/>
  其中Sub-PropertyName为一个带连字符的单词组合。例如:

<asp:Label id='label1' runat='server' Font-Size='Medium' Font-Underline='True' />
在上面的代码中,Font-Size和Font-Underline就是典范的连字符情势属性。

  · 内部嵌套情势属性

  凡是具有这种标记情势的属性均为复杂属性。它是以嵌套情势在控件标记内部声明某属性集的子属性。其情势类似:

<asp:DataGrid id='DataGrid1' runat='server'>
<HeaderStyle ForeColor='#FFFFCC' BackColor='#990000'>
</HeaderStyle>
<FooterStyle ForeColor='#330099' BackColor='#FFFFCC'>
</FooterStyle>
</asp:DataGrid>
  其中HeaderStyle是内部嵌套情势属性,ForeColor和BackColor是HeaderStyle属性的子属性。FooterStyle与HeaderStyle是一样的,也是内部嵌套情势属性。

  · 内部嵌套情势默认属性

  这种标记情势的属性通常用于服务器控件的聚集属性,具有这种情势的属性必定是复杂属性。该情势属性与上文所述'内部嵌套情势属性'的标记情势基础雷同。不同之处在于:当某控件具有这种属性时,控件标记中只包含该情势属性,不能包含其他任何属性。这就是为什么称为'默认'的原因。其情势类似:

<asp:DropDownList id='DropDownList1' runat='server'>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
</asp:DropDownList>


  其中属性ListItem就是典范的内部嵌套情势默认属性。

  2) 从Control和WebControl持续的属性

  如前面文章所述,假如需要开发没有UI的控件或者组合其他浮现它们自己的UI的控件,则从System.Web.UI.Control基类派生。为此,读者应当懂得一些Control类的常见属性。如表1列举了Control基类常用属性,它们在开发服务器控件过程中经常被应用。

属性数据类型阐明 Controls ControlCollection 获取 ControlCollection 对象,该对象表现 UI 层次结构中指定服务器控件的子控件 Adapter ControlAdapter 获取控件的浏览器特定适配器。(asp.net 2.0新增) AppRelativeTemplateSourceDirectory string 获取或设置包含该控件的 Page 或 UserControl 对象的利用程序相对虚拟目录。(asp.net 2.0新增) EnableTheming bool 获取或设置一个值,该值唆使是否对此控件利用主题。(asp.net 2.0新增) Page Page 获取对包含服务器控件的 Page 实例的引用。 Parent Control 控件属于其Controls聚集的控件。(假如控件B是A.Controls的一个元素,则控件A是控件B的父级) EnableViewState Bool 唆使控件在往返过程中是否保护其视图状态。假如父控件不保护其视图状态,则主动不保护其子控件的视图状态 TemplateControl TemplateControl 获取或设置对包含该控件的模板的引用。(asp.net 2.0新增) UniqueID String 页框架给控件分配的分层限定的唯一标识符 ClientID String 给控件分配的唯一标识符,该唯一标识符在客户端上浮现为HTML ID特征。ClientID与UniqueID是不同的,这是由于UniqueID可以包含冒号字符(:),而在HTML ID特征中该字符无效(并且不答应在客户端脚本的变量名中应用)
 页框架

感谢 靓哥 的投稿 本文仅代表作者观点,与楚天站长站立场无关。

分享到:

共3页: 上一页123下一页

数据统计中!!

tags:之,简略,属性,开发,控件,2.0,服务器,ASP.NET,

 责任编辑:靓哥
  • 评论总数: [ 查看全部 ] 网友评论