看板 C_Sharp 關於我們 聯絡資訊
針對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)
tomex:用stringbuilder輸出table html的確效能較佳,但不方便維護 10/06 14:40
tomex:建議可採用中庸的Repeater控件,把html碼獨立出來方便維護 10/06 14:41
andymai:=.=您真的想太多了~我不過是提出疑惑罷了~要比效能當然是 10/06 21:24
andymai:量身打造的快...請不要自行賦予文字過多的生命... 10/06 21:26
andymai:舉聖殿的例子不過是他有出書~有實做可看罷了... 10/06 21:28
abcf:TOMEX大大說的沒錯 當GRIDVIEW做不到的時候 我也是REPEATER和 10/06 21:35
abcf:自己畫TABLE混合用 不過我是在aspx用asp語法來劃table 所以基 10/06 21:38
abcf:本上HTML碼是獨立出來的 我不是在LOAD事件把TABLE串出來的 10/06 21:40
abcf:因為這樣就像你說的 不方便維護 10/06 21:40