当有同事问起我:永法GridView有分页功能呢,永法GridView有删除事件呢,永法GridView只要设置好数据源就可以直接添加修改删除数据了
你为什么还有找个第三方插件,分页人家都自带了,你还专门找个,写起来还那么麻烦,有现成的GridView,功能还那么强大,你不用为什么要用Repeater,什么都得自己去写。这何苦呢?
我想了想,是呀,为什么我没有用GridView而是用Repeater,GridView明明提供了很多方便的功能?
一时想不起来当时是怎么选择了,所以只是回了句:不会用GridView!
怎么想都不是滋味,我当初之所以没有用GridView肯定是有我的理由的,只是这个理由只是当初进行了一个筛选,选出结果是不用GridView,所以一般不想去用GridView。但突然让我说为什么不用我答不上来。
其实能答上来一点,因为我习惯了自己的ASP写法,感觉GridView的想法不好理解,还总是跟服务器交互,感觉太浪费服务器资源,又用户体验不好。还有就是GridView的分页功能,是把所有数据都拿出来,如果数据量很大的话,速度会很慢。
但实际上呢,我用到的分页也只是PagedDataSource,还是跟GridView处理分页时一样的东西,我转了一大圈又何苦呢?本来就是因为这个不用他,而现在去绕了一圈后,还是用他了。
唯一感觉好的就是,那个分页控件不用让我写一堆代码,并且在GridView以外的如Repeater,DataList上也可以直接用。
知耻而后勇 不待扬鞭自奋蹄,我做错了吗?我没做错,GridView的分页在数据量很大时效率是会很低,但我做过的网站现在来看,只有一个网站的数据量是大到了20万条数据,而这么多数据,GridView来处理还不成问题的。既然我是追求效率的人,我做的软件的负载力是很大的,我一直这么想,所以我要求我做的至少要我认为是最好的,以前用过其它分页算法,不过都不太好用,每次调用前都得再研究下,最近看到SQL2005上提供的一个东西:SQL 2005 ROW_NUMBER() ,这哥们我试了下,实在是太方便了,基本上像那些不研究效率的人,只要稍微研究下这个东西,或拿别人现成的东西来用一下,NND,一切问题也就搞定了。分页是那么的快,效率是那么的高,调用是那么的简单。
可以说,他们的人生是:数据量不大的,他们能很快的完成任务,好,数据量大时,有新的解决方案了,直接拿来就用,好,效率高,于是他们总可以说:这个呀,简单,那个呀,简单,生活就是这么自在。而像我们这样的人呢,这个呀,数据量大时效率太低,所以我们得XXXXXXX,让人感觉效率真低,发现有新的更方便的东西时,NND,怎么出来个这么方便的东西,让我们研究的多久的东西就这么一下子白搭了。
通过以上这一堆说不清的理,我可以看出一条来:我们不是科学家,不用把什么事都做的太完美,不好解决的问题可以不解决或换种别的好解决的问题来,不要总要一条路走到黑,我们认为的效率不高,也许别人还没遇到这问题时已经不用你的程序或已经垮了,或有新的思路了,反正你的高效他们没用上,我们要做的是把握好整体的大的方向,微软的问题他们会自己解决的,不用咱们解决,text没法like,他就给你来个varchar(max),就这么简单,你研究那么多处理这个问题的方法,到头来被微软一下子给解决了,那你还不是哭无泪。
所以,该下班时下班,该睡觉时睡觉,该吃饭时吃饭,该玩时玩,不要总研究一些几年后可能就要过时的东西。
虽然这么想,但习惯了解决问题,我这样的人肯定还是会按照以前的方法来走的,因为他确实大多时候让我们的付出是有回报的,只是,从长远来看,应该少走这样的路。
好了,如果没有这么多的问题,我也不会找到ROW_NUMBER(),没找到这个,我现在或以后一段时间肯定还会在这事上郁闷呢。
引用本页地址:
http://www.yongfa365.com/item/Repeater-GridView-Yin-Fa-De-Ren-Sheng-Si-Kao.html