`
vtrtbb
  • 浏览: 353093 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

asp.net 自定义服务器控件标签属性说明

 
阅读更多

Bindable
这个特性表示属性是否可以绑定一个有效数据源。通常使用布尔值进行设置。例如:Bindable(true)。如果使用值true标记属性,表示该属性可以绑定一个有效数据源,且应引发该属性的属性更改通知。

Browsable
指定属性是否应该在属性浏览器中显示,使用布尔值设置。通常情况下,功用属性和那些希望在属性浏览器中显示的属性被设置为 Browsable(true),只读属性和那些不希望在属性浏览器中见到的属性被设置为 Browsable(false)。

Category
指 定属性在属性浏览器中进行分组显示的类别。该设计时特性帮助可视化编辑器将属性进行逻辑分组。通常分为:外观(Appearance)、行为 (Behavior)、布局(Layout)、数据(Data)、操作(Action)、键盘(Key)和鼠标(Mouse)等。除此之外,还可以自定义 分组类别。

Description
指定显示在属性浏览器下方,属性的文字说明。

DesignerSerializationVisibility
指 定属性是否以及如何在代码中序列化,其值为DesignerSerializationVisibility的枚举值。存在3种设置方 式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 指定序列化程序不应该序列化属性 值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visible) 指定应该允许序列化程序序列化属性的值;
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程序应该序列化属性的内容,而不是属性本身。此字段为只读。.Visible为其默认值。

NotifyParentProperty
指示当此特性应用到的属性的值被修改时将通知其父属性。换言之,如果属性的父属性应该在该属性值改改时接到通知,则向该属性应用NotifyParentProperty特性。通常使用布尔值进行设置。



除了需要熟悉以上设计时特性外,还有一些常用的设计时特性,这些特性声明于包含属性的类之前。通常情况下,它们应用于包含子属性的复杂属性的类的声明过程中,因此在声明复杂属性过程中意义重大,列举如下:
ParseChildren
使 用该特性指示当在页面上以声明方式使用控件时,嵌套在服务器控件标记内的XML元素是应该视为属性还是应视为子控件。通常情况下,包含两种声明方 式:①ParseChildren(true)表示将子XML元素作为服务器控件的子控件分析;②ParseChildren(bool childrenasProperty, string defaultProperty),其中childrenasProperty和方式①中的布尔值参数意义相同,defaultProperty定义默认 情况下将子控件分析为服务器控件的集合属性。

PersistChildren
该特性指示设计时是否应将服务器控件的子控件作为内部嵌套控件保持。如果该特性为PersistChildren(true),则将服务器控件的子控件作为嵌套服务器控件标记保持。如果为PersistChildren(false),则将该控件的属性作为嵌套元素保持。

PersistenceMode
指 定如何将服务器控件属性或事件保持到ASP.NET页面的元数据属性。共存在4种枚举设置方 式:①PersistenceMode(PersistenceMode.Attribute),指定属性或事件保持为特 性;②PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty),指定属性作为服务 器控件的唯一内部文本而属性值是HTML编码的,只能对字符串作这种指 定;③PersistenceMode(PersistenceMode.InnerDefaultProperty),指定属性在服务器控件中保持为内 部文本,还指示将该属性定义为元素的默认属性,只能指定一个属性为默认属 性;④PersistenceMode(PersistenceMode.InnerProperty),指定属性在服务器控件中保持为嵌套标记,这通常 用于复杂对象,它们具有自己的持久性属性。

DefaultProperty
指定服务器控件的默认属性,例如[DefaultProperty("MyProperty")]。

TypeConverter
指定用做此特性所绑定到的对象的转换器的类型。用于转换的类必须从TypeConverter继承。使用ConverterTypeName属性来获取为该特性所绑定到的对象提供数据转换的类名。

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyCC
{
        //制定默认属性为Dir
        [DefaultProperty("Dir")]
        //置作为IDE工具箱的控件,被拖拉后自动生成的标签
        [ToolboxData("<{0}:MyCC runat=server></{0}:MyCC>")]
        //定义派生于WebControl类的MyCC类
        public class ServerControl1 : WebControl
        {
                //指定成员是否通常用于绑定.msdn解释
                [Bindable(true)]
                //指定当属性 (Property) 或事件显示在一个设置为“按分类顺序”模式的 PropertyGrid 控件中时,用于给属性或事件分组的类别的名称。
                [Category("Appearance")]
                //默认属性值
                [DefaultValue("")]
                //设置是否本地化
                [Localizable(true)]
                public string Text
                {
                        get
                        {
                                String s = (String)ViewState["Text"];
                                return ((s == null) ? "[" + this.ID + "]" : s);
                        }

                        set
                        {
                                ViewState["Text"] = value;
                        }
                }

                //重写RenderContents方法,该方法接受一个HtmlTextWriter参数
                protected override void RenderContents(HtmlTextWriter output)
                {
                        //将Text写入HTML输出流
                        output.Write(Text);
                }
        }
}

 

 

 

来自:http://visionsky.blog.51cto.com/733317/223230

分享到:
评论

相关推荐

    ASP.Net皮肤换肤控件

    虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程中的作用 1 1.3 在控件开发中提升自己 2 1.4 可继承控件基类介绍 2 1.5 运行一个简单的控件 7 1.5.1 开发一个简单控件 7 1.5.2 部署和运行 11 1.6 控件...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程中的作用 1 1.3 在控件开发中提升自己 2 1.4 可继承控件基类介绍 2 1.5 运行一个简单的控件 7 1.5.1 开发一个简单控件 7 1.5.2 部署和运行 11 1.6 控件...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程中的作用 1 1.3 在控件开发中提升自己 2 1.4 可继承控件基类介绍 2 1.5 运行一个简单的控件 7 1.5.1 开发一个简单控件 7 1.5.2 部署和运行 11 1.6 控件...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    1.1 自定义服务器控件1 1.2 服务器控件在软件开发过程中的作用1 1.3 在控件开发中提升自己2 1.4 可继承控件基类介绍2 1.5 运行一个简单的控件7 1.5.1 开发一个简单控件7 1.5.2 部署和运行11 1.6 控件生命周期...

    asp.net教学讲义

    3.3 ASP.NET中的HTML服务器控件 38 3.3.1 HtmlForm控件 38 3.3.2 HtmlImage控件 40 3.3.3 InputFile控件 42 3.3.4 HtmlGenericControl 控件 43 3.4 ASP.NET2.0新增控件 45 3.4.1 ImageMap控件 45 3.4.2 FileUpload...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

    ASP.NET4高级程序设计(第4版) 3/3

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

    ASP.NET的网页代码模型及生命周期

    ASP.NET中还提供了控件状态属性作为在服务器往返过程中存储自定义控件中的数据的方法。在页面控件中,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,...

    零基础学ASP.NET 2.0电子书&源代码绝对完整版1

    App_Code\ BName.cs 创建具有公共属性的自定义控件。 8-04.aspx 动态测试自定义控件。 App_Code\ x.bat 将控件编译为程序集的批处理文件。 App_Code\ MyLabel.cs 应用视图状态与控件状态。 8-05.aspx ...

    零基础学ASP.NET 2.0&源代码绝对完整版1

    App_Code\ BName.cs 创建具有公共属性的自定义控件。 8-04.aspx 动态测试自定义控件。 App_Code\ x.bat 将控件编译为程序集的批处理文件。 App_Code\ MyLabel.cs 应用视图状态与控件状态。 8-05.aspx 测试控件...

    ASP.NET.4揭秘 卷2

    n124 使Login控件执行自定义身份验证 n13 使用CreateUserWizard控件 n131 配置自定义用户表单字段 n132 发送已创建用户电子邮件通知 n133 用户自动重定向来源页面 n134 自动生成密码 n135 在CreateUserWizard控件中...

    开发和使用WEB用户空间

    当 ASP.NET 内置的 Web 服务器控件不能满足我们开发的需要时,通过我们会创建自己的控件。而在 ASP.NET 中有两个选择: 1)用户控件:用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件...

    AspNetPager7.2分页控件及Demo源码

    虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据...

    亮剑.NET深入体验与实战精要2

    3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新页面的方法汇总 149 3.4.6 页面事件控制 150 3.4.7 在URL中传递中文的解决方案 152 3.4.8 增强用户...

    AspNetPager控件及Demo源码 v7.4.4.zip

    虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据...

    ASP.NET编程之道.part1.rar

    陷阱12 JavaScript设置服务器控件值 陷阱13 放置隐藏字段的陷阱 陷阱14 动态加载设置输出缓存的用户控件 陷阱15 为删除按钮添加删除确认对话框 陷阱16 页面在客户端转向的陷阱 陷阱17 Web Service方法重载产生的陷阱...

    亮剑.NET深入体验与实战精要3

    3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新页面的方法汇总 149 3.4.6 页面事件控制 150 3.4.7 在URL中传递中文的解决方案 152 3.4.8 增强用户...

Global site tag (gtag.js) - Google Analytics