• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET 2.0 中创建DataList子类控件时的一个错误

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  日在 ASP.NET 2.0 中使用以前用 .NET 1.1 开发的一个WebControls动态库,其中有两个控件分别是继承自 DataGrid 和 DataList,发现出现如下的创建错误:
  

  这个控件在ASP.NET 1.1里都是正常的。如果不去管这个错误,也是可以照常使用,在运行的时候也一切正常。
  从问题的描述来看,"make sure all properties are valid.",好像是说控件的属性有问题。把代码仔细地检查了一遍,还是没发现什么错误。难道是ASP.NET 2.0中针对WebControl的某些变化导致了这个创建错误?但运行时并没有错啊。。

  这个时候无意中选择了SmartTag中的"AutoFormat"功能,却意外的发现另一个错误提示:
  
  "Cannot create an object of type 'Hooyee.Utils.PagerInfo'" from its string representation '' for the 'PagerInfo' property. "
  是说无法通过 PagerInfo 属性的空字符串值创建 PagerInfo 对象。原来就是这个Property有错误。

  PagerInfo是一个用于保存和计算分页信息的类。由于我的DataList支持分页功能,所以添加了这样一个属性。
  从我的理解来看,系统可能想把PagerInfo属性d的内容以文本形式保存在html里,然后又通过这个字符串值来反序列化或者重新创建一个PagerInfo实例。而我的PagerInfo类并未实现序列化或重载ToString()方法,所以也就无法把它的值保存成string类型。

  因为PagerInfo这个属性本身就没有必要保存在html里,所以我的解决方法是在这个属性前面加一个DesignerSerializationVisibilityAttribute,这个特性用于控制某个属性在设计时怎样进行序列化。我这里是Hidden,不让它序列化。

[DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] 
 


  重新编译后,问题解决。至于通过为 PagerInfo 类添加序列化功能,我还没试过,我想应该也能解决这个问题。有兴趣的朋友可以试一下。

  __________________________________ 2005/01/25 02:45
  关于本文提到的 AdvDataList 控件以及 PagerInfo 类,都是在 WebPager 翻页控件里用到的。该控件现已提供源码下载。
  一套可嵌入或独立使用的翻页控件: WebPager(附源码)
  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站发布时间:2022-07-10
下一篇:
调试和跟踪ASP.NET应用程序发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap