我们根据ASP.NET属性表现形式的不同表现形式,把其区分为简单属性和复杂属性
下面来看下ASP.NET属性表现形式
简单属性表现形式如下,大家都很熟悉属性中含有子属性,称之为复杂对象,如Font属性
(1)连字符的表现形式
(2)内镶属性的表现形式,如定义样式
(3)内镶集合属性的表现形式,如DropDownList
复杂属性基本使用方法
请看我是怎么做的,关于下面看到了一些元数据,如果你不熟悉,请参考MSDN.
下面一段代码记录一个custom的信息.
1.定义枚举
- usingSystem;
- namespaceCustomComponents
- {
- /**////<summary>
- ///职业
- ///</summary>
- publicenumMetier
- {
- 教师,程序员,作家
- }
- }
2.定义复杂属性
- usingSystem;
- usingSystem.ComponentModel;
- namespaceCustomComponents
- {
- /**////<summary>
- ///地址集合
- ///</summary>
- publicclassAddress
- {
- privateStringstreet=null;
- privateStringcity=null;
- privateStringstate=null;
- privateStringzip=null;
- publicStringStreet
- {
- get
- {
- returnstreet;
- }
- set
- {
- street=value;
- }
- }
- publicStringCity
- {
- get
- {
- returncity;
- }
- set
- {
- city=value;
- }
- }
- publicStringState
- {
- get
- {
- returnstate;
- }
- set
- {
- state=value;
- }
- }
- publicStringZip
- {
- get
- {
- returnzip;
- }
- set
- {
- zip=value;
- }
- }
- }
- }
3.呈现控件
4.在ASP.NET页面定义控件
打开后台代码,输入如下代码检查属性,发现属性是存在的,如下图,再打开视图,发现控件能显示属性,***的就是不能认识属性为有效属性,在源视图也无法找到这几个属性.
5.解决4无法显示有效属性的问题,(其实以上的测试已经实现复杂属性了).
解决方法:请在Custom类中的CustomAddress中加入一个元数据,如下
- [Description("地址集合")]
- [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
- publicAddressCustomAddress
- {
- get
- {
- returnaddress;
- }
- }
6.实现CustomAddress属性折叠效果
解决方法:给Address类添加一个元数据,如下
- [TypeConverter(typeof(ExpandableObjectConverter))]
- publicclassAddress
- {.}
以上介绍ASP.NET属性表现形式
【编辑推荐】