本文目的:
1、了解内镶属性和内联属性的优先级谁高谁低。
2、将内联属性从属性中移出
在《在VS2008中创建自定义控件(十三)添加内镶属性》中介绍过什么是内镶属性,以及怎么样添加内镶属性。那什么是内联属性呢?内联属性也就是前面我们在《在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)》和《在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)》介绍过的使用“-”联接符的属性,如下图所示。
在《在VS2008中创建自定义控件(十三)添加内镶属性》中,我们添加了内镶属性之后,内联属性和内镶属性是可以同时使用的,如下图所示。
在上图中,我们同时使用了内镶属性和内联属性,并且,两个属性值都不相同,那么最后的运行结果将会怎么样?究竟是内联属性的优先级高还是内联属性的优先级高?以上代码的运行结果如下图所示。
从上图中可以看出,内镶属性的优先级比内联属性的优先级高。所以内联属性的属性值都没有在浏览器窗口中显示出来。事实上,如果我们直接在属性窗口修改或添加折叠属性的属性值时,VS也只会同步修改内镶属性,而不是去修改内联属性。如下图所示。
从上图中要看到,当我们在修改“字”属性时,aspx的源代码窗口中,只有内镶属性值被修改了,而内联属性值并没有变化。上图的运行结果如下图所示。
那么,是不是在使用了内镶属性之后,就不能使用内联属性了呢?事实上也并非如此,如下面图所示,当我们不使用内镶属性时,内联属性也一样可以使用。
那么,既然内联属性只有当内镶属性不存在时才起作用,那么,我们可不可以只使用内镶属性而不使用内联属性呢?答案是可以的,具体操作方法其实在《在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)》就已经介绍过,在那篇博文中,曾经介绍过特性[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]的作用就是在代码生成器中产生的是属性内容的代码,那么, 只要将这一行代码删除即可。
删除代码生成项目之后,再看aspx源代码窗口的,如下图所示。
从上图中我们可以看出,内联属性已经不能使用了。
===================================================================
原创不容易,转载请注明出处:http://hi.csdn.net/smallfools
相关链接:
- 在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
- 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
- 在VS2008中创建自定义控件(三)在网页中添加自定义控件
- 在VS2008中创建自定义控件(四)为自定义控件添加默认值
- 在VS2008中创建自定义控件(五)修改tagprefix
- 在VS2008中创建自定义控件(六)创建完全自定义控件
- 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
- 在VS2008中创建自定义控件(八)输出HTML代码
- 在VS2008中创建自定义控件(九)添加属性
- 在VS2008中创建自定义控件(十)添加枚举型属性
- 在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
- 在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
- 在VS2008中创建自定义控件(十三)添加内镶属性
- 在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
- 在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法
===================================================================
本文源代码可以在http://download.csdn.net/source/3265979下载。