自定义控件(9)控制控件属性的保存方式PersistenceMode

来源:互联网 发布:虚拟视频软件电脑 编辑:程序博客网 时间:2024/05/17 23:12

System.Web.UI.PersistenceMode用于控制控件属性的保存方式。

(1)Attribute                                                 指定属性或事件保持为标签上的属性

(2)EncodedInnerDefaultProPerty               指定属性保存为控件的唯一内容,当属性为字符串类型而且是HTML编码时可以使用此值。

(3)InnerDefaultProperty                              指定属性保存为控件的唯一内容

(4)innerProperty                                         指定属性保持为嵌套标记,通常用于复杂对象类型的属性。


Attribute实例

using System.Web.UI;namespace kjlx.BLL.PChildrenMode{    public class PCModeAttributecs : Control    {
       [PersistenceMode(PersistenceMode.Attribute)]        public virtual string myAttribute        {            get            {                if (ViewState["myAttribute"] != null)                {                    return (string)ViewState["myAttribute"];                }                return string.Empty;            }            set { ViewState["myAttribute"] = value; }        }        protected override void Render(HtmlTextWriter writer)        {            writer.Write(myAttribute);        }    }}

2.EncodedInnerDefaultProPerty 实例

using System.Web;using System.Web.UI;namespace kjlx.BLL.PChildrenMode{    [ParseChildren(true, "Text")]   public class PCModeEncodedInnerDefaultProPerty:Control    {        [PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)]        public virtual string Text        {            get            {                if (ViewState["Text"] != null)                {                    return (string)ViewState["Text"];                }                return string.Empty;            }            set { ViewState["Text"] = value; }        }        protected override void Render(HtmlTextWriter writer)        {            writer.Write(HttpUtility.HtmlEncode(Text));        }    }}

      <cc2:PCModeEncodedInnerDefaultProPerty ID="PCModeEncodedInnerDefaultProPerty1" runat="server"><a></a></cc2:PCModeEncodedInnerDefaultProPerty>




3.InnerDefaultProperty实例

 using System.Web.UI;namespace kjlx.BLL.PChildrenMode{    [ParseChildren(true,"Text")]    public class PCModeInnerDefaultProperty:Control    {        [PersistenceMode(PersistenceMode.InnerDefaultProperty)]        public virtual string Text        {            get            {                if (ViewState["Text"] != null)                {                    return (string)ViewState["Text"];                }                return string.Empty;            }            set { ViewState["Text"] = value; }        }        protected override void Render(HtmlTextWriter writer)        {            writer.Write("Text=" + Text);        }    }}

<cc2:PCModeInnerDefaultProperty ID="PCModeInnerDefaultProperty1" runat="server">22222</cc2:PCModeInnerDefaultProperty>

4.innerProperty实例

using System.Web.UI;namespace kjlx.BLL.PChildrenMode{    [ParseChildren(true)]    public class PCModeinnerProperty:Control    {        [PersistenceMode(PersistenceMode.InnerProperty)]        public virtual string Text        {            get            {                if (ViewState["Text"] != null)                {                    return (string)ViewState["Text"];                }                return string.Empty;            }            set { ViewState["Text"] = value; }        }        [PersistenceMode(PersistenceMode.InnerProperty)]        public virtual string Value        {            get            {                if (ViewState["Value"] != null)                {                    return (string)ViewState["Value"];                }                return string.Empty;            }            set { ViewState["Value"] = value; }        }        protected override void Render(HtmlTextWriter writer)        {            writer.Write("Text=" + Text);            writer.Write("Value=" + Value);        }    }}


 <cc2:PCModeinnerProperty ID="PCModeinnerProperty1" runat="server">        <Text>    我是Text        </Text>        <Value>    我是Value        </Value>    </cc2:PCModeinnerProperty>





原创粉丝点击