作者abcf (慢慢的)
看板C_Sharp
标题Re: [问题] 请问一下画表格的问题
时间Mon Oct 6 01:34:13 2008
针对andy这位大哥的推文来做回应
圣殿祭司很有名没错 但他不是万能的 不需要拿他压人吧
可能是我脾气不好 这位大哥的口气让我不太舒服
我说的意义不大是说 当报表复杂时候 你耗的效能会比手动写html语法的table多
当然现在的电脑很快 差距不大 可能差距只有很少 但我还是想用比较不耗效能的用法
举个圣殿祭司自己说的例子
把所有的报表都在同一个web form呈现 此时你一定不可能先把所有栏位
都用工具设定好
ok 或许你会说有几种报表格式就拉几个gridview 选哪个格式就只出现那个gridview
这样我就可以把所有栏位先设定好了 没错这样可以
再来就说到圣殿祭司的方法 所有gridview栏位都用程式码动态产生
这个绝对比自己写html语法的table 来的耗效能 不过栏位也只是跑一次
效能绝对感受不出来 但如果是每一个资料列的格式呢 当他要跨列跨栏位
我不知道圣殿祭司怎麽做的 但如果我用的话 只能在gridview已经databind
之後再去改他每一列的格式 这样等於很多要跨列的资料 做了两次动作
第一次是在rowdatabind事件生成还没跨列的格式(当然这gridview帮你做掉了
你不用写程式码 只要指定gridview.datasource=ooxx 没跨列的格式就出来了)
毕竟你下面列都还没出来 你要怎麽跨列呢 所以只能在databind之後再做动作了
上面两种方法 都会遇到跨列的问题 也就是要做两次动作
你可以搜寻圣殿祭司的文章 他也有说gridview其实就是写html语法
上述对gridview的理解如果有错 欢迎指正
还有我没说太复杂不能用 我是说意义不大 why? 就是耗的效能比较多一点点而已
再来说到一个以前专案遇到的报表格式 不复杂 可是怎麽想也不知道gridview
要怎麽套用进来 连我的师父(就是我的经理啦)也不知道 最後就自己画table
假设有个资料表栏位如下
id date cost
如果用gridview的话 表头标题就照资料表格式 资料就一列一列秀出来
很抱歉 客户不要这种格式
他要的是
cost栏位当资料列 date当栏位 也就是说资料列只有一列 但是date不只一栏
看他设定的条件搜寻出来几个日期就是几个栏位 而且如果超过6个栏位 请换下页
格式如下
date1 date2 date3 date4 date5 date6
cost 1000 2000 2007 2009 2007 48541
date7 date8 date9
cost 25 456 68
请问 用gridview怎麽做到 总不会超过六个 又动态新增一个gridview
ok,也可以啦 但就是比较耗效能 是吧
如果搜寻出来是60个栏位就要新增10个gridview
ps:我也很爱用gridview 没说gridview不好喔 但有时候客户要的格式
用我的小小脑袋还真的想不出怎麽套用gridview效能比较好
刚刚上网找到的
http://zhidao.baidu.com/question/66880439.html?fr=fd
你可以想想要怎麽用gridview做出来
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.124.107.145
※ 编辑: abcf 来自: 122.124.107.145 (10/06 01:38)
※ 编辑: abcf 来自: 122.124.107.145 (10/06 02:01)
1F:推 tomex:用stringbuilder输出table html的确效能较佳,但不方便维护 10/06 14:40
2F:推 tomex:建议可采用中庸的Repeater控件,把html码独立出来方便维护 10/06 14:41
3F:→ andymai:=.=您真的想太多了~我不过是提出疑惑罢了~要比效能当然是 10/06 21:24
4F:→ andymai:量身打造的快...请不要自行赋予文字过多的生命... 10/06 21:26
5F:→ andymai:举圣殿的例子不过是他有出书~有实做可看罢了... 10/06 21:28
6F:→ abcf:TOMEX大大说的没错 当GRIDVIEW做不到的时候 我也是REPEATER和 10/06 21:35
7F:→ abcf:自己画TABLE混合用 不过我是在aspx用asp语法来划table 所以基 10/06 21:38
8F:→ abcf:本上HTML码是独立出来的 我不是在LOAD事件把TABLE串出来的 10/06 21:40
9F:→ abcf:因为这样就像你说的 不方便维护 10/06 21:40