快速业务通道

Asp.net ViewState——自定义状态管理(二)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19
     {         Pair p = (Pair)savedState;         base.LoadViewState(p.First);         Property.LoadViewState(p.Second);       }       else       {         base.LoadViewState(savedState);       }     }     protected override void TrackViewState()     {       base.TrackViewState();     }        protected override void Render(HtmlTextWriter writer)     {       writer.Write( TypeDescriptor.GetConverter( Property.GetType()).ConvertTo( null, CultureInfo.InvariantCulture, Property, typeof(string )));     }   }   [TypeConverter( typeof( CustomTypeConverter2))]   public class CustomProperty5 : IStateManager   {     private StateBag viewState = new StateBag();     private bool isTrackingViewState;     string m_Property1;     string m_Property2;        public string Property1     {       get { return viewState["Property1"] == null ? string.Empty : viewState["Property1"].ToString(); }       set { viewState["Property1"] = value; }     }     public string Property2     {       get { return viewState["Property2"] == null ? string.Empty : viewState["Property2"].ToString(); }       set { viewState["Property2"] = value; }     }        IStateManager Members#region IStateManager Members        public bool IsTrackingViewState     {       get { return isTrackingViewState; }     }        public void LoadViewState(object state)     {       ((IStateManager)viewState).LoadViewState(state);     }        public object SaveViewState()     {       if (isTrackingViewState)       {         return ((IStateManager)viewState).SaveViewState();       }       return null;     }        public void TrackViewState()     {       isTrackingViewState = true;       ((IStateManager)viewState).TrackViewState();//重要     }        #endregion   }      public class CustomTypeConverter2 : ExpandableObjectConverter   {     /**//// <summary>     /// 指定是否可以从特定的类型进行转换     /// </summary>     /// <param name="context"></param>     /// <param name="sourceType"></param>     /// <returns>true:可以;false:不可以</returns>     public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)     {       //如果源类型是字符串       if (sourceType == typeof(string))       {         return true;       }          return false;     }     /**//// <summary>     /// 指定是否可以转换为特定类型     /// </summary>     /// <param name="context"></param>     /// <param name="destinationType"></param>     

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号