惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
D
Docker
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
U
Unit 42

博客园 - coollzh

关于.NET VS JavaEE平台争论的沉思录 不要使用Microsoft Project的理由 Using distributed transactions in .Net 1.x without deriving from ServicedComponent .NET下的开发者们正在继承计算机早期时代伟大的黑客精神 上海著名网络公司招聘高级软件工程师 即将过的2004 URLRewriting的问题 谁知道c++中的char ** 在C#中一般用什么类型 Indigo Untyped Channel VC#2005 最新技术预览版下周发布 上海某著名互联网公司招聘asp.net/.net开发工程师 Coming soon: “Enterprise Library” .net framework1.1到2.0的重大变化 Windows 2003 中DTC的怪事情 动态Validator的奇怪问题 sql server2000 在windows2003的默认安装客户端无法连接 msn”给你一个惊喜“的病毒 DataReader的问题 35岁前应该做好的十件事
一件及其汗的事!
coollzh · 2004-05-18 · via 博客园 - coollzh

最近在做报表,为了进行一些自定义得属性和操作,我从Repeater类派生出一个自定义得控件SDRepeater,override它的一些重要属性和方法,其中包括我改写了Repeater的数据源类型,改成了一个我自定义得数据类型,但该类并没有实现IEnumerable借口,
Ok,一且好像都搞定了,在页面中声明,填充数据,绑定控件,运行,于是发现一个非常奇怪的现象,控件中的纪录条数,页数,当前页和上下页按钮都在,就是不见数据表格。狂郁闷,从公司郁闷到家,
怎么出现这种事情呢?百思不得其解!
回到家后又经过近两个小时的代码审查,终于让我发现问题!其实是个非常初级C#多态的问题,可是我们平时在继承控件的时候就有可能犯类似错误
看看出错的代码:
public class SDRepeater: Repeater
{
  private RepeaterSource _dataSource;
  override public object DataSource
  {
   set
   {
     RepeatorSource source = value as RepeatorSource;
     _dataSource = source;
     ItemCount = source.ItemCount;
     CurrentPageIndex = source.PageIndex;
    
   }
   get{ return _dataSource;  /*this code result in bugs!!*/} 
  }
}
 public class RepeaterSource
 {
//using public field ...just for simply 
   public IList Source;
   public int ItemCount;
   public int PageIndex;
 }
你看出为什么有问题了吗?