坎尼無意間發現這個很神奇的東西
大家都知道 當 DataView 要排序時 要給予 .Sort 屬性
不過 大家知道給予 .Sort 屬性時 DataView 裡的資料會怎樣變化嗎?
「不就是排序過的資料?!」對啊 坎尼也是這麼認為
但在 vs2005 + .net 2.0 的環境下測試 咦? 似乎不是?!
來看一下測試的抓圖
坎尼在取得資料的部分 加上兩個中斷點 (其他相關程式碼 請見 這裡 )
然後在 CustomerID 排序為 Desc 時 進入中斷點
下圖為排序前 可以看到 Visualizer 裡的資料的確是未排序
按下 F5 到下一個中斷點
先確認一下目前的排序 的確是 customerId Desc
再來看一下DataView裡的資料
呃 怎麼會是排序前的資料呢 (抓頭
但是畫面上卻又是排序過的資料
但當前幾天坎尼準備寫 blog 時
卻發現這個現象不見了 當場嚇出了一天份的尿
難不成...這飄月連程式也會跟著飄嗎??! (見下面抓圖)
排序前的資料...恩 一樣
也的確是 customerId Desc
!!?
出現了 排序後的資料
好啦 一般靈異現象都會有的解答時間到了 XD
不知各位有沒有發現 其實圖中的某些東西不太一樣???
相信大家看到這 會把頁面再捲上去 仔細的看程式碼
「不是一樣嗎?」
沒錯 程式碼當然一樣 (被鐵槌打飛
重點是....環境不一樣
前半段的抓圖是 vs 2005 + .net 2.0
後半段是 vs 2008 + .net 3.5
所以坎尼試想了兩種可能性
第一種
.net 2.0 中 DataView 資料其實未排序
只是在容器(GridView)要顯示資料時,會讀取 Sort 屬性是否有值
然後要在顯示時 再由容器去排序
第二種
單純的是 Visualizer 的 bug ,它只是忘了去看 Sort 屬性是否有值
就在剛剛 坎尼突然想到 若是 vs2008 + .net 2.0 呢?
於是又開了個新專案 Target 指向 .Net Framework 2.0
程式碼複製過來 再按下 F5
想知道結果嗎? 下次再告訴... (被踢了一腳
好啦 結果會和後半段的測試一樣 Visualizer 看到的資料會是排序過的
所以坎尼是偏向後者的推論 可能是 Visualizer 當初設計時的 bug
不過這些都要問 MS 的開發 Team
飄月過了 飄程式也要少出現啊 哈哈
2008年8月30日
訂閱:
張貼留言 (Atom)
Google Spreadsheet 裡用規則運算式
最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D
-
今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I. XOR (exclusive OR) XOR 是邏輯運算子之一,定義為: 當兩數的值不同才為 true,相同則為 false 其他相關說明可以參考 維基百科:XOR II. 程式 以往的做法會宣...
-
好久沒開 Chart Control 議題了 剛好前陣子 Codeplex 出現可以輕鬆建立 Excel 檔案的 Library- NPOI 於是坎尼想說研究一下,看能不能把 Chart Control 匯出圖片到 Excel 中 沒想到只花了不到1小時就研究...
-
上個週末打開一個影片檔,發現字幕檔是中英文混合的,造成字幕吃掉畫面很大的空間, 打開字幕檔一看,果然每一段時間都有先英文後中文的字幕: 因此我想要自己作成「只有中文」&「只有英文」兩個字幕檔,但這個檔案有6418 行,如果要手動一行一行的刪除...
沒有留言:
張貼留言