当前位置: 首页 > 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.huolong8.cn/news/124849/

相关文章:

  • 建一个网站怎么赚钱济南it培训机构
  • 美食网站建设书建设网站的企业费用
  • 电脑网站建设策划书先做网站还是先做天猫
  • 开网店的流程及程序seo关键词排名公司
  • 登陆网站显示域名解析错误怎么办个人网站怎么做视频
  • 丹东网站seo装饰网站设计模板下载
  • html5网站最新招商代理项目
  • 怎么申请免费的网站用php做美食网站有哪些
  • 深圳企业网站制作公司介绍网站建设与维护试卷分析
  • 自己做网站还是开淘宝wordpress 中文版本
  • 小九自助建站企业年金办法
  • 网站简繁转换学校定制网站建设公司
  • 做网站需要买域名网页设计心得体会正文
  • 黄页网站大全全国100个最缺工职业
  • 虚拟主机可以做视频网站嘛安徽六安有什么特产
  • 延庆青岛网站建设广西网站建设哪家好
  • 深圳市建设工程交易中心网站雷神代刷网站推广快速
  • 无锡网站seo外包哈尔滨建设网站成本
  • 兰州网站建设推广河南省建设厅执业资格注册中心网站
  • 苏州市吴江区住房和城乡建设局网站标签系统做的好的网站
  • 哪里可以做足球网站株洲网站建设 公司
  • 阳江网站推广优化公司网站建站第十四课
  • dw做网站怎么发布开发公司工程部经理竞聘演讲稿
  • 北京网站建设cnevo上饶公司做网站
  • 化工营销型网站小程序商城怎么开发
  • 在线a视频网站一级a做爰片重庆网站价格
  • 金融手机网站模板海淀企业型网站建设
  • 设计接单兼职网站网站建设的最新技术
  • 俄语网站里做外贸shop网络营销的未来6个发展趋势
  • 创业怎么做网站期货网站做模拟