庖丁解牛Asp.net3.5控件和组件开发技术系列—页面状态机制(四)
} /// <summary> /// 如果更改此对象的属性需要调用CreateInstance 来创建新值,则返回true;否则为false /// </summary> /// <param name="context"></param> /// <returns></returns> public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) { return true; } /// <summary> /// 使用指定的上下文和attributes集合作为参数,返回由参数value指定的集合数组 /// </summary> /// <param name="context"></param> /// <param name="value"></param> /// <param name="attributes"></param> /// <returns></returns> public override PropertyDescriptorCollection GetProperties (ITypeDescriptorContext context, object value, Attribute[] attributes) { return TypeDescriptor.GetProperties(typeof(SolidCoordinate), attributes).Sort(new string[] { "X", "Y", "Z" }); } /// <summary> /// 使用指定的上下文返回该对象是否支持单属性录入[如果指定, 属性窗口也会提 /// 供扩展输入模式] /// </summary> /// <param name="context"></param> /// <returns></returns> public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return true; } } 这两个类在第4章已经讲解过,这里就不再介绍了。如果还不明白,请回顾一下4.6.2.1小节。 接下来讲解我们最关注的主控件。在主控件中增加一个SolidCoordinate类型的属性,代码如下所示:
主控件类代码中就包括一个复杂属性。先不在主控件中增加视图相关的代码,而在页面中测试一下它现在是否能够保存视图状态。编译控件,在页面中放置一个ViewStateType Converter控件,增加一个"提交"按钮,最终页面的前台代码如下:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |