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

简单的网站架构wordpress+大附件

简单的网站架构,wordpress+大附件,惠州seo博客报价,网络推广平台加盟控件在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.yutouwan.com/news/124849/

相关文章:

  • 云南建设厅网站职称评定房屋装修效果图整套
  • 做企业网站的公司有哪些个人网站开发赚钱方向
  • sns网站开发怎么做多个域名指向一个网站
  • 公司做网站百度可以搜到吗电子商务网站建设思维导图
  • 网站需要做实名认证如何做c 是用来做网站的吗
  • 建筑行业数据共享平台网站怎么做海淘网站
  • 申通e物流的网站建设获取网站访客qq号码代码
  • 新乡网站自然优化顺德营销型网站一站式服务哪家好
  • 网站建设 网页设计 网站制作百度关键词优化软件怎么样
  • 网站建设编辑叫什么岗位深圳需要做网站的公司有哪些
  • 做我女朋友的表白句的网站开发者账号是干嘛用的
  • 网站盈利方式西安微网站开发
  • 现如今网站开发用什么框架wordpress静态化设置
  • 网站的建设公司哪个好怎么给网站做友情链接
  • 优普南通网站建设2023年度最火关键词
  • 成品网站源码的优化技巧dede查看网站
  • 商城网站的模块设计六安人论坛最新招聘信息
  • 家具网站模板长沙网站的建设
  • 如何设计一个网站页面建站用哪个模板好
  • 提高企业网站的访问率做网站需要的合同
  • 密云网站建设公司重庆seo网络推广平台
  • 浦江网站建设公司开发一个游戏软件多少钱
  • 广西营销型网站建设公司平面设计报价明细表
  • 网站建设岗位职责互联网产品推广是做什么的
  • 做网站专业公司电话网络营销指的是什么意思
  • 外国永久网站wordpress表单邮件回复
  • 福田建网站多少钱建怎么网站比较赚钱
  • 花都网站制作公司求一个dw做的网站
  • 网站备案简介怎么写wordpress5.2多站点设置方法
  • 网站固定通栏代码建设工程施工合同司法解释一