善用擴充方法

雖然我個人認為自從 .Net 2.0 以後引進的 Lambda 運算式在某種程度上破壞了 C# 的嚴謹度, 但是對於一個程式設計師而言, 我們也不能否定它對於程式撰寫所能提供的方便性。擴充方法 (Extension Method) 也是一樣; 如果你還不知道擴充方法是什麼, 那麼當你看完本文之後, 我相信你會感謝微軟提供了這麼好用的功能...

...繼續閱讀 »

[ListView] 標準的 ListView 範例

在這裡我列出一個標準的 ListView 範例。這個 ListView 具有以下幾個特色: 1. 已提供 Display, Select, Sorting, Paging, Editing 等功能, 2. 提供各個標準架構的 HTML 標記, 未來稍加修改就可以直接套用, 3. 已把光棒功能加入; 如果不喜歡這個配色系統, 自己改掉就可以了, 4. 已修改 DataPager, 使它既可顯示分頁頁碼, 又有前一頁、下一頁、最前頁、最末頁等按鈕 (請自己加入圖檔)...
在 DataPager 中, 可以把共幾筆、共幾頁等資訊一併顯示

...繼續閱讀 »

[UserControl] 網頁生命週期與取不到 UserControl 資料的問題

如果你寫 ASP.NET 的程式夠久, 你就會知道網頁會發生的大部份奇怪的問題都發生在沒有弄清楚網頁生命週期這個原因。而如果你在 ASP.NET 上面的除錯經驗老道, 你就會很直覺的把很多奇怪的問題懷疑到網頁生命週期這個方向。幸好我們有很簡單的方法可以知道這方面的問題, 如果你不知道, 或是不熟悉, 你最好看看我以下的介紹...

...繼續閱讀 »

自訂類別的屬性與欄位如何列舉並提供控制項作為繫結來源?

我在「 陣列詳論」與「Enum詳論」兩篇文章中曾經介紹過如何將陣列以及 Enum 項目當作繫結控制項的資料來源。然而,無論是陣列或是 Enum 項目, 它們都有設定和使用上的巨大限制。其中, Enum 的每個項目都必須是常值, 換句話說, 項目的值無法動能控制。而陣列的值雖然可以動態變更, 但無法提供設計時的 Intellisense 支援...

...繼續閱讀 »

[Resources] 讀寫 Resource

在 ASP.NET 中讀取 Resource 是再容易不過的事情了。我們只需要先加入一個 Resource 檔案(在 ASP.NET 中它會放在 ~/App_GlobalResources 資料夾之下),加入一個字串(例如 String1),然後再很簡單的使用以下程式...

...繼續閱讀 »

[CheckBoxList] 找出 CheckBoxList 中被勾選或取消勾選的那個項目

今天遇到這個問題時,原本還不以為有什麼難,卻沒想到還頗費了一番功夫才終於找出可行的辦法,而且解法看起來不是很 Graceful,有一點點 Hacking 的感覺。基本上我們可以選擇最簡單的做法,那就是使用 For Each li As ListItem In CheckBoxList1.Items 指令去掃描 CheckBoxList1 裡面的所有 CheckBox,看來這也是 ASP.NET 企圖要我們使用的原始方法...

...繼續閱讀 »

[Globalization] 動態指定網頁語系

如果我們想製作一個多語系網站,當然我們可以採用 ASP.NET 2.0 所提供的內建功能,讓客戶能夠藉由在瀏覽器設定中選擇語系的方法自動套用。可是,如果你希望客戶可以直接在網頁上選擇語系而不是從瀏覽器中設定,你又該如何做呢...

...繼續閱讀 »