作者grence (多想兩分鐘 = =")
看板Web_Design
標題Re: [問題] ASP.Net DataGrid+ViewState 當ViewSta …
時間Wed Dec 17 23:50:57 2008
最簡單的解法,ViewState["ooxx"]改成Session["ooxx"]
但這是壞習慣,會有效能問題
網頁版面有限,一次撈個幾萬筆資料也塞不下,
可以考慮動態調整 SQL,每次只撈夠用的就好…程式可能要動滿大的
JOIN數個TABLE…聽起來也有改善空間
※ 引述《ray521 (一年)》之銘言:
: 各位好
: 我先描述一下我的情況
: 有一段SQL SELECT JOIN 數個TABLE
: 查詢的結果會有萬筆資料
: 我的作法是將結果放置DataSet
: 讓DataGrid DataBind後
: 再將DataSet放至ViewState中
: 然後使用DataGrid 的PageIndexChanged
: 當PageIndexChanged發生時,
: 直接從ViewState取出資料,不用再查詢一次
: 我這樣做的原因是原本的SELECT SQL
: 執行時大概會花10s-20s
: 如果每次PageIndexChanged都重新查詢
: 會很花時間
: 所以我才想從ViewState取資料就好
: 以上是我的作法
: 但我現在遇到的問題是
: 因為資料很多,導至ViewState過大
: 當超出一定大小後
: 會導至網頁上的物件執行出錯
: (就是按了 任何應該autopostback的物件
: 就會出現網頁錯誤的情況)
: 所以上來問問
: 請問對這方面的情況
: 有沒有什麼更好的實現方式或作法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.208.48
推 ray521:想請問一下 以SQL方式的話。有辦法使用SQL語法,達成 12/18 14:11
→ ray521:一次只要結果中的某順序比資料嗎?像要結果中的50-100筆 12/18 14:12
→ ray521:我有想過用not in top 50的方式。但這樣應該會更慢@@ 12/18 14:12
推 ray521:很有用的網頁耶!這樣我只要自己實作PageIndexChange就好了 12/18 18:01