概述ASP.NET属性表现形式


  本文标签:ASP.NET属性表现形式

  我们根据ASP.NET属性表现形式的不同表现形式,把其区分为简单属性和复杂属性

  下面来看下ASP.NET属性表现形式

  简单属性表现形式如下,大家都很熟悉属性中含有子属性,称之为复杂对象,如Font属性
(1)连字符的表现形式
(2)内镶属性的表现形式,如定义样式
(3)内镶集合属性的表现形式,如DropDownList

  复杂属性基本使用方法

  请看我是怎么做的,关于下面看到了一些元数据,如果你不熟悉,请参考MSDN.

  下面一段代码记录一个custom的信息.

  1.定义枚举

  1. usingSystem;  
  2.  
  3. namespaceCustomComponents  
  4. {  
  5. /**////<summary> 
  6. ///职业  
  7. ///summary> 
  8. publicenumMetier  
  9. {  
  10. 教师,程序员,作家  
  11. }  

  2.定义复杂属性

  1. usingSystem;  
  2. usingSystem.ComponentModel;  
  3.  
  4. namespaceCustomComponents  
  5. {  
  6.  
  7.  
  8. /**////<summary> 
  9. ///地址集合  
  10. ///summary> 
  11. publicclassAddress  
  12. {  
  13. privateStringstreet=null;  
  14. privateStringcity=null;  
  15. privateStringstate=null;  
  16. privateStringzip=null;  
  17.  
  18. publicStringStreet  
  19. {  
  20. get  
  21. {  
  22. returnstreet;  
  23. }  
  24. set  
  25. {  
  26. street=value;  
  27. }  
  28. }  
  29.  
  30.  
  31. publicStringCity  
  32. {  
  33. get  
  34. {  
  35. returncity;  
  36. }  
  37. set  
  38. {  
  39. city=value;  
  40. }  
  41. }  
  42.  
  43. publicStringState  
  44. {  
  45. get  
  46. {  
  47. returnstate;  
  48. }  
  49. set  
  50. {  
  51. state=value;  
  52. }  
  53. }  
  54.  
  55. publicStringZip  
  56. {  
  57. get  
  58. {  
  59. returnzip;  
  60. }  
  61. set  
  62. {  
  63. zip=value;  
  64. }  
  65. }  
  66. }  

  3.呈现控件

  4.在ASP.NET页面定义控件

ASP.NET页面定义控件

  打开后台代码,输入如下代码检查属性,发现属性是存在的,如下图,再打开视图,发现控件能显示属性,唯一的就是不能认识属性为有效属性,在源视图也无法找到这几个属性.

源视图

  5.解决4无法显示有效属性的问题,(其实以上的测试已经实现复杂属性了).

  解决方法:请在Custom类中的CustomAddress中加入一个元数据,如下

  1. [Description("地址集合")]  
  2. [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  
  3. publicAddressCustomAddress  
  4. {  
  5. get  
  6. {  
  7. returnaddress;  
  8. }  

  6.实现CustomAddress属性折叠效果

  解决方法:给Address类添加一个元数据,如下

  1. [TypeConverter(typeof(ExpandableObjectConverter))]  
  2. publicclassAddress  
  3. {.} 

  以上介绍ASP.NET属性表现形式