当前位置:首页 > ASP.NET2.0服务器控件开发之简单属性

ASP.NET2.0服务器控件开发之简单属性

点击次数:1364  更新日期:2010-12-25
\n

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

  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”一起定义。通常为以下形式:


\n
<MyControl:CustomerControl id=”demo1″ runat=”server” PropertyName=”PropertyValue”/>

\n