[MVC] MVC5 的 AutoComplete 筆記

ASP.NET MVC 的版本雜沓, 我時常遇到過去慣用的程式碼在新版本中突然無法使用的情況。最近想在一個案子裡套用許久未用的 AutoComplete 功能, 但是當拿出舊的程式來用時, 卻發現完全無效! 翻了幾本書, 發現都是舊的, 情況完全一樣。情急之下, 上網東查西查, 結果發現有時不太看得出來網路上的範例到底是新是舊, 而且也都全部無效。直到現在, 我還是搞不懂, 為什麼以前天天在用的程式, 什麼時候突然不能用了, 而且我真看不出來到底是哪裡被改了? 這幾年間, 我到底是哪裡沒有 follow 到...

...繼續閱讀 »

[VS] VS2015 新功能簡介

對 Windows 開發者而言, 今年 (2015) 七月真是熱鬧的月分。首先, Visual Studio 2015 在 7/20 正式發行, 而 Windows 10 也緊跟著在 7/29 正式發行。這次的 Visual Studio 有以下幾個相關的版本...

...繼續閱讀 »

[ASP.NET] 讓游標停駐在文字框最後一字

最近遇到一個小需求。原本我為了讓使用者方便, 在不使用 TimePicker 的情況下, 讓他們可以手動方式輸入日期時間 (若使用 DateTimePicker 之類的工具, 效率會減少十倍)。然後我又幫他們自動加入當天的日期 (因為在大多數情況下, 他們需要輸入的日期都是當天, 但是都不是現在時間), 例如 "2014/9/30 "。接著, 我又下了 autofocus 屬性, 當網頁載入後, 讓這個文字框自動成為焦點, 因為這是第一個必須輸入的欄位。如此, 他們只要輸入時間的部份就行了。問題是, 他們每次要輸入時間時, 都必須再按一下滑鼠游標或者 End 鍵, 才能讓文字游標指到日期的後面, 這樣才能開始輸入時間。雖然這只是一個小工夫, 但是總讓人覺得討厭! 難道不能讓游標自動跑到最後面嗎?

...繼續閱讀 »

[ASP.NET] Server Exception Log 速成

在各式網站中用了一些 Log 套件之後, 我覺得其實有時候我們不一定需要那麼多複雜的功能, 或許我們只需要偶爾攔截並記錄一些例外錯誤而已。這時候, 我會推薦大家使用最簡單的方法, 也就是把網站中出現的所有例外情況都記在 Server 的 Event Log 裡面...

...繼續閱讀 »

[ASP.NET] 在 GridView 中對欄位進行排序時顯示上下箭頭

自從 ASP.NET 4.0 開始, GridView 控制項就多了一個 SortedAscendingHeaderStyle 和 SortedDescendingHeaderStyle 屬性。顧名思義, 它是專門針對欄位排序功能而設計的。在 MSDN 說明頁上(見上方連結), 它載明了「當這個屬性設定為 true 時,指示排序方向的箭號會在資料行標題中顯示」。可是我們應該在哪裡把它設定為 true 呢? 我們又應該在哪裡指定上下箭頭呢...

...繼續閱讀 »

[ASP.NET] 在網頁上執行靜態 JavaScript 的超級小技巧

我想, 凡是已經寫 ASP.NET 很久的程式設計師, 一定都知道如何透過 RegisterStartupScript(key, script) 和 RegisterClientScriptBlock(key, script) 這兩種指令在頁面中插入動態的 JavaScript 程式。但是只有這種方法嗎? 以下, 我要示範一個「超級小」的技巧, 以更簡單的方式達到相同或類似的功能。只不過, 這種方式比較適合「罐頭」式的 JavaScript 指令, 也就是比較偏向靜態、很少改變的 JavaScript 程式。我將使用 ASP.NET 的網頁的 PostBack 機制, 讓已經寫好的 JavaScript 程式在網頁 PostBack 之後自動執行...

...繼續閱讀 »

[入門] 給 ASP.NET 新手的建議 - 關於網頁生命週期

我當過電腦講師、寫過不少文章、也在國內外各個 ASP.NET 討論區轉戰了好幾年, 接觸過無以數計想學網站設計的新手或學生。在這麼多人裡面, 我大致上可以歸納出一種或少數幾種性質蠻接近的族群, 這些人有共同的特色、遇到相同的問題、也有相同的盲點。我現在要在這裡給這些人提供幾點小小的建議。


這些人有個共同的特色, 那就是不完全清楚網站運作的基本邏輯。我時常喜歡打個比方: 以電視 (尤其是陰極射線管的電視) 為例, 我們在看電視時, 總以為電視上的圖像總是永遠是連續的, 但其實電視的畫面是從上到下、從左到右一點一點畫出來的, 每秒畫三十幀 (略估), 然後靠畫面上螢光物質的暫時殘留現象, 讓人眼 (其實人眼也有視覺殘留效應) 看不出來它其實是每秒三十次一直重畫的...

...繼續閱讀 »

ASP.NET 和 VS 2013 新功能彙整

微軟在近日 (2013/6/26) 公開了最新的 Visual Studio 2013 Preview (預覽) 版本; 我在前幾天的發文中也有提到過。不過, 到底這個最新版本有什麼不一樣之處? 微軟又為什麼在短短一年之後, 再度推出 Visual Studio 的新版本? 由於現在的資訊都不充份, 我想, 唯一, 也是最好的答案, 恐怕也只有 Scott Hanselman (現任微軟 Azure & Web Tools 的 Principal Community Architect 兼書籍作者) 能夠回答你了...

...繼續閱讀 »

在 ASP.NET Web Form 專案中加入 Bootstrap 套件

Bootstrap 是由 Twitter 所開發的一個免費的網頁框架, 它提供了許多從基本到進階的 CSS 和 JavaScript 功能, 讓網頁開發者可以很快速地把網頁架起來, 同時還兼顧了還算不錯的美感。通常, 網頁設計師不會、也不懂得美工設計, 所以我們如果只是很單地把網頁建立起來, 很不幸的, 這個網頁通常不會跟「美觀」這兩個字有交集。但是有了 Bootstrap, 你的網頁很容易就能讓人為之驚艷 (尤其是跟之前的做法對比的話)。
當然, 我不是說 Bootstrap 從此會讓美工人員丟掉工作。我相信美工人員也會感謝 Bootstrap 的存在, 這樣至少可以讓網頁在進行 layout 時省去一些功夫, 能夠早一點下班。
其實 Bootstrap 的應用方式並不難, 但是對於完全沒有概念的人, 仍然存在著一點門檻。在這裡, 讓我花點篇幅解釋一下...

...繼續閱讀 »

在 jQuery 自訂函式中實作 Optional Parameters

jQuery 的自訂函式事實上就是 jQuery 的外掛 (Plugin), 宣告的方式很簡單, 如下範例所示... 本文的重點, 將著重在如何實作 Optional Parameters, 也就是說, 要如何模仿 C# 或 VB 中的可省略參數值。在繼續進行之前, 我們必須先來看看 jQuery 中的 extend 函式。根據文件, jQuery.extend() 函式的目的是把兩個以上的物件合併到第一個物件。其語法如下...

...繼續閱讀 »

JavaScript 字串處理效能分析

作為一個前端語言, JavaScript 天生就註定要比其它任何一種語言要處理更多的字串。如何才能更有效地處理字串, 想必也是每個程式設計師最關心的問題。最近, 我看到有人很堅持地在程式中把個別的字串以陣列元素方式宣告, 然後把它們 join 起來, 說這樣才能達到最佳的效能, 其速度遠比使用字串的加號運算來得快! 起初我也半信半疑, 直到我寫了一個程式來仔細分析為止...

...繼續閱讀 »

從 LinkedIn 密碼外洩事件看網站的保密策略

根據 Macworld 在 2012/6/6 所發表的一篇文章, 一位俄羅斯駭客聲稱已駭進 LinkedIn 的資料庫並盜走帳號資料, 然後把六百五十萬 (實際數字為 6,458,020) 個密碼公布在一個俄羅斯的論壇中作為證據 (僅公布密碼資料, 並無關連的帳戶名稱及其它資料)。這些密碼事實上並不是明文, 而是已經過 SHA-1 (SHA 是 Secure Hash Algorithm 的縮寫; SHA-1 是在 1995 年發表) 方式加密的...

...繼續閱讀 »

使用 Timeline 自製噗浪式河道

Timeline 是一個 JavaScript 程式庫, 它並不是 jQuery 套件, 所以無需載入 jQuery 主程式。要如何解釋 Timeline 的功用, 這實在有點難; 但如果你是噗浪的愛用者, 那麼你馬上就可以心領神會。因為它使用起來幾乎跟噗浪一模一樣(只差不能留言跟按讚而已)...

...繼續閱讀 »

[ASP.NET] 字型單位的轉換

當我們在設計網頁時, 對於文字所使用的寬度多半使用 Pixel 或者 Em 來表示。不過我記得在更早以前是廣泛地採用所謂的 Point; 這是跟印刷息息相關的單位, 但是近來已經不太使用了, 尤其是在網頁設計上...

...繼續閱讀 »

(CSS3) text-shadow 詳解

text-shadow 是 CSS3 中一個蠻有趣的屬性。加上這個屬性之後, 文字馬上變得多彩多姿起來。簡單的講, 就如同它的字義, text-shadow 意思就是給文字加上陰影。以前我們必須使用繪圖軟體才能為文字套上這些特殊效果, 而且還要把它轉變成圖形。現在, 只要方便地賦予它 "text-shadow" 這個 CSS 屬性, 馬上就可以看到效果...

...繼續閱讀 »

在 ASP.NET 專案中安裝 ELMAH 擴充套件 STEP BY STEP

在這個全世界有數百萬起跳的人口都在從事軟體開發工作的今天,程式設計絕對不是一個適合單打獨鬥的行業。雖然我個人也是個偏好親手下去寫所有程式的開發人員,但是若想應付改來改去的需求、節省時間、準時交件的話,有時候不借助他人之力是不行的。很幸運的,確實有很多已經寫好、包好、測試好 (而且好用 - 這是重點) 的套用就在網路上,為什麼還需要凡事都自已動手?問題是,通常這些套件的安裝非常繁複、要面對的情況也很多樣。有時候光是安裝這些套件就會難倒一堆人,甚至興起不如自已寫還比較快的想法...

...繼續閱讀 »