当前位置: 首页 > news >正文

白城市网站建设_网站建设公司_域名注册_seo优化

免费制作一个自己的网站,中国电信企业邮箱21cn,网站建设叁金手指花总1,wordpress解密主题控件在WEB开发时经常要用到#xff0c;虽然有部分已经存在工具箱里#xff0c;但有时总需要根据自己的要求#xff0c;开发一些合适自己的控件。接上一节,已经说过了控件的属性, 例如#xff0c;我们需要一组属性的集合时#xff0c;这时我们需要用到的就是复杂属性了虽然有部分已经存在工具箱里但有时总需要根据自己的要求开发一些合适自己的控件。接上一节,已经说过了控件的属性, 例如我们需要一组属性的集合时这时我们需要用到的就是复杂属性了简单的属性满足不了我们的要求例如大家熟悉的字体信息设置那栏。下面为大家介绍一下实现的几种代码与注意细节 一、连字符形式的复杂属性标记asp:Button IDButton1 runatserver Font-BoldTrue Font-ItalicTrue Font-NamesArial Font-OverlineTrue Font-Size20pt TextButton /例如上面就是一个Font的复杂属性通过这个属性可以设置一系列相关的值。在ServerControl中添加一个类ComplexAttribute然后输入下面代码 Codeusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace ServerControl{    [DefaultProperty(Text)]    [ToolboxData({0}:ComplexAttribute runatserver/{0}:ComplexAttribute)]    public class ComplexAttribute: WebControl     {        private Student _student;        public ComplexAttribute()        {            _student  new Student();        }                [Description(Student属性)]        [Category(Student属性)]        [PersistenceMode(PersistenceMode.Attribute)]   //指定如何将服务器控件属性或事件保持到ASP.NET页面的元数据属性        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  //指定属性是否以及如何在代码中序列化        [TypeConverter(typeof(ExpandableObjectConverter))]  //指定用作此特性所绑定到的对象的转换器的类型        [NotifyParentProperty(true)]        public Student Student        {            get             {                if (_student  null)                {                    _student  new Student();                }                return _student;            }        }        /// summary        /// 输出控件        /// /summary        /// param namewriter/param        protected override void Render(HtmlTextWriter writer)        {            writer.Write(姓名);            writer.Write(_student.Name);            writer.WriteBreak();            writer.Write(年龄);            writer.Write(_student.Age.ToString());            writer.WriteBreak();            writer.Write(分数);            writer.Write(_student.Cost.ToString());            writer.WriteBreak();        }    }    /// summary    /// 密封类封装文本的字体属性。无法继承此类。    /// /summary    public sealed class Student    {        private string _Name  Name;        private int _Age  0;        private int _Cost  0;        [NotifyParentProperty(true)]   //这个是为了实现在属性窗口中更新属性值时将通知其父属性,不然修改了属性窗口的值,但不通知你属性,等于没修改        public string Name        {            get { return _Name; }            set { _Name  value; }        }        [NotifyParentProperty(true)]        public int Age         {            get { return _Age; }            set { _Age  value; }        }        [NotifyParentProperty(true)]        public int Cost         {            get { return _Cost; }            set { _Cost  value; }        }    }} 注意细节不然你会感觉到很多地方不明白1、Student类在设计时最好封装起来添加密封限制让这个类无法继承。2、Student类的属性添加特性[NotifyParentProperty(true)]3、构造函数ComplexAttribute时初始化Student类不然设计器中你的控件会出现未引用对象的错误提示。4、ComplexAttribute类的属性添加特性[PersistenceMode(PersistenceMode.Attribute)]   //指定如何将服务器控件属性或事件保持到ASP.NET页面的元数据属性5、ComplexAttribute类的属性添加特性[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  //指定属性是否以及如何在代码中序列化6、ComplexAttribute类的属性添加特性[TypeConverter(typeof(ExpandableObjectConverter))]  //指定用作此特性所绑定到的对象的转换器的类型7、ComplexAttribute类的属性添加特性[NotifyParentProperty(true)] PersistenceMode详解指定如何将服务器控件属性或事件保持到ASP.NET页面的元数据属性共存在4种枚举设置方式 1、PersistenceModePersistenceMode.Attribute指定属性或事件保持为属性 2、PersistenceModePersistenceMode.EncodedInnerDefaultProperty指定属性作为服务器控件的唯一内部文本如果属性值是HTML编码的只能对字符串作这种指定 3、PersistenceModePersistenceMode.InnerDefaultProperty指定属性在服务器控件中保持为内部文本还指示将该属性定义为元素的默认属性只能指定一个属性为默认属性 4、PersistenceModePersistenceMode.InnerProperty指定属性在服务器控件中保持为嵌套标记通常用于复杂对象它们具有自己的持久性属性。 DesignerSerializationVisibility详解指定属性是否以及如何在代码中序列化其值为DesignerSerializationVisibility的枚举值存在3种设置方式 1、DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)指定序列化程序不应该序列化属性值 2、DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)指定应该允许序列化程序序列化属性的值 3、DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程序应该序列化属性的内容而不是属性本身。此字段为只读。Visible为其默认值。 编译在页面上拖进控件再看一下属性窗口你自己定义的属性就在里面了如下图:设置Student属性,到页面代码视图,就会出现下面的代码: cc1:ComplexAttribute IDComplexAttribute1 runatserver Student-Age10 Student-Cost95 Student-NameASP.NET / 二、内部嵌套复杂属性标记 asp:GridView IDGridView1 runatserver    RowStyle BackColor#EFF3FB //asp:GridView例如上面的代码BackColor属性RowStyle是内部嵌套。在ServerControl中添加一个类InRowAttribute然后输入下面代码 Codeusing System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace ServerControl{    [DefaultProperty(Text)]    [ToolboxData({0}:InRowAttribute runatserver/{0}:InRowAttribute)]    [ParseChildren(true), PersistChildren(false)]    public class InRowAttribute : CompositeControl    {        private Style _Style;        public InRowAttribute()        {            _Style  new Style();        }        [PersistenceMode(PersistenceMode.InnerProperty)]        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]        [NotifyParentProperty(true)]        [Category(复杂属性)]        [Description(复杂属性——内部嵌套形式)]        public Style BackColorStyle        {            get            {                if (_Style  null)                {                    _Style  new Style();                }                return _Style;            }        }        /// summary        /// 输出控件        /// /summary        /// param namewriter/param        protected override void Render(HtmlTextWriter writer)        {            writer.Write(_Style.BackColor.ToString());        }    }    [TypeConverter(typeof(ExpandableObjectConverter))]      public class Style    {        private Color _BackColor;        [NotifyParentProperty(true)]        public Color BackColor        {            get { return _BackColor; }            set { _BackColor  value; }        }    }} 编译后在设计器中拖进这个控件在属性窗口设置值在代码视图中可以看到下面的代码cc1:InRowAttribute IDInRowAttribute1 runatserver    BackColorStyle BackColorActiveBorder/BackColorStyle/cc1:InRowAttribute属性定定义方面还有好多类型例如我们常用的ListItem组合 CheckBox组合 或自己需要时定义的边框线条边框大小颜色等等这些都是大家在开发中慢慢摸索举一反百吧如果大家有好的控件不防也与我分享一下。 转载于:https://www.cnblogs.com/whtydn/archive/2009/09/15/1566818.html
http://www.lebaoying.cn/news/141823.html

相关文章:

  • wordpress登陆不进去南昌网站排名优化价格
  • 公司网站建设费用入什么费用wordpress resume
  • 深圳做网站600页网站设计
  • 网站建设专业的网站建设课程设计的引言
  • 建立一个门户网站网店代运营销售
  • 网站开发数据流程图怎么画网站优化公司哪个好
  • 地区汽车修理网站建设五百丁简历模板免费
  • 网站后台添加文章后怎么不显示开发公司注销时剩余未售房产如何处理
  • 银川市住房和城乡建设局网站公告互动广告平台
  • 主题网站设计与制作医疗在线网站建设
  • 做电影网站服务器如何上wordpress
  • 景区网站建设教程如何开发网站平台开发
  • 垫江集团网站建设网络文化经营许可证经营范围
  • 门户网站的区别服务器放多个网站
  • 网站建设存在的问题及建议兰州有哪些互联网公司
  • 网站建设是设计师吗怎样免费注册个人网网址
  • 网页制作与网站开发从入门到精通 豆瓣c2c模式是什么意思
  • 山东网站推广公司编写网站的语言有哪些
  • 什么是html5网站公司网站制作有哪些
  • 沂水做网站上海工程建设安全协会网站
  • 奢华网站模板微网站免费平台
  • 如何提高网站的访问量公司局域网
  • 网站seo入门基础教程书籍西宁网络推广服务网
  • 商城网站html模板wordpress video
  • 榆林华科网站建设wordpress中文设置
  • 网站策划书编写大学生网站设计作业
  • 电子商务网站建设与维护03图片生成网址
  • 青海做网站多少钱西青做网站
  • 大学两学一做专题网站网站备案注册
  • 网站建设服务公司专业服务商务网站建设公司