昨天偶然有同学问到用什么控件实现类似跟贴的效果。我乍听到的时候,确实有些诧异,为什么他遇到问题会直接寻找现成控件?我当然也是软件复用的拥护者,可是也不能因此扼杀自己的创造力,千万不要失去创造力,那是我们区别于机器人的关键。否则,我真的可以用那句经典的话了:长此以往,国将不国。(发现小时候背诵的课文还是挺有用的)
 
我入行以来,先接触的Java,那时候,它被封为神,想一举吃下网络编程天下。然而给我印象最深刻的是它的结构设计与自由扩展,也是从那个时候我开始建立了对BS应用的正确理解,毕竟,它离传统Web不远。后来,.NET来了,它以MS一贯的强势瞬间令业界乍舌,当然更脍炙人口的是它继承了微软一贯的作风---强大的设计器。拖拽控件,组件,在属性面板上设置一下,实现几个事件,一切OK。似乎编程就是这么几步,这就是教条的开始,以至于在教学中,我不得不反复的强调程序的入口点,事件的顺序等等。当然,已没有必要非要从Win32 API开始学习编程了,我所要说的是编程思路。
 
 说了这么多铺垫,我们回到我们的问题。跟贴效果,查看HTML源代码发现是<TABLE>的迭代。我马上可以想到三种以上的方法来实现这个循环,不是吗?单文件模型不说,Repeater,DataList,甚至GridView也是可以的啊。有人说这是建立在你对控件的了解得基础上,我当然只能摇头笑笑,因为我不愿意暴露自己从来没有用过Repeater和DataList控件的缺陷。但是没用过并不表示没有看过SDK上的说明。我感谢微软,它让软件开发如此容易,使我这样一个普通人,也可以靠这个吃饭。同时感谢它“创造”出那么多的所谓标准控件(似乎不用这些控件就表示不标准),让我拖拽一下就可以做出唬人的软件。但是我并不迷信它,没有控件,我们一样写程序,还记得我们没用任何数据控件来以表格方式显示数据吗?对,因为我们抓住了它的实质。
 
抓住实质,就不会陷入教条。学而不思则罔,思而不学则殆。孔子真牛!