2014年10月26日 星期日

ASP.NET MVC 資料分頁操作 - 使用 PagedList.Mvc @ GitHub

資料分頁操作在系統開發裡是一定會遇到的一個基本功能,在 ASP.NET MVC 處理資料分頁操作時,因為沒有內建的預設功能,所以有些人會選擇自己實作分頁功能,不過寫得好不好就見仁見智,而大部分的開發者都會選擇直接使用第三方套件,例如 MvcPaging 或 PagedList.Mvc。

這兩個第三方套件在這個部落格裡都有為數部少的文章做介紹,不過這一年多來主要都是使用 PagedList.Mvc 來實作資料分頁的功能,在使用上不會太複雜只要抓住幾個重點就可以,這邊就把過去幾篇在說明如何使用 PagedList.Mvc 的文章範例做了整理,將範例程式檔放到 GitHub 上,讓需要的朋友可以一邊看著文章然後一邊對照程式,這樣比較容易吸收、瞭解。

放到 GitHub 上的範例程式都是可以正常執行的,建議各位不要只是在 GitHub 上面瀏覽程式,而是直接將原始碼下載一份,直接在你自己的電腦上面執行。

 


2014年10月21日 星期二

ASP.NET MVC 使用政府公開資料 @ GitHub

將去年一連三篇有關使用新北市政府公開資料所做的範例給放在 GitHub 上,

ASP.NET MVC 使用政府公開資料 Part.1

ASP.NET MVC 使用政府公開資料 Part.2 - 增加條件過濾

ASP.NET MVC 使用政府公開資料 Part.3 - 資料分頁 使用 PagedList 的 StaticPagedList

這個範例主要是在說明如何在 ASP.NET MVC 的網站裡使用其他服務所提供的 JSON 資料,然後將接收的資料轉換為物件,並且在頁面上以分頁的方式顯示,再加入搜尋條件以方便對資料做查詢,最後則是藉由這一個範例說明 PagedList.Mvc 的 StaticPagedList 功能。

 


2014年10月20日 星期一

練習題 - ASP.NET MVC 資料列表顯示 + 分頁 + 查詢 + FormMethod.Post

這是一個蠻常見的功能,使用 ASP.NET MVC 開發,將某一個資料以列表方式顯示,並且加上分頁功能,另外還要有查詢功能,而希望顯示分頁的時候可以保留查詢的條件(也就是查詢結果也要能夠分頁顯示),因為有可能查詢的欄位會有相當多個,所以不希望是以 Get 的方式讓查詢條件以 QueryString 的方式傳遞到後端,而是使用 Post 的方式來做傳遞(因為這不是用在一般的前台頁面,而是常見於後台的操作頁面)。

其實這樣的功能也不是相當複雜,我在之前的資料分頁文章也曾經做過說明,例如以下這一篇:

ASP.NET MVC 資料分頁 MVCPaging 2.0 應用 Part.1:一般、表單(Form)

不過這一次會有不一樣的方式來實作,分頁套件會使用「PagedList.Mvc」,因為查詢條件可能會有相當多個的情況,所以會建立一個 ViewModel 來使用,藉由這樣的一個範例說明可以讓初學者能夠瞭解類似這樣的需求應該要如何處理。

 


2014年10月19日 星期日

Visual Studio Extenstions - Codinion

不論是我在測試開發用的電腦或是在工作時所使用的電腦,電腦裡頭的 Visual Studio 都會安裝一些幫助我開發能夠更有效率的擴充套件,有些是免費的而有些則是需要付費購買的,我的觀念是使用者付費,而且我主要的工作就是使用 Visual Studio 開發程式,所以我會花錢購買擴充套件來讓我的工作產能有所提升,身為一個號稱「專業」的程式開發人員就必須要為自己的工作做點投資,有投資就一定會有所收穫。

這篇要介紹的是一個新的擴充套件「Codinion」,雖然是個小套件,但只要是能夠對我們開發有所幫助的都是好套件。

 


2014年10月18日 星期六

ASP.NET MVC 匯出 Excel - 讓使用者挑選要匯出的資料欄位 @ GitHub

最近開始把一些之前在文章裡用來說明的範例做了整理,然後逐步將這些範例都放到 GitHub,其實早在之前我就已經將一些範例都到 GitHub 公開給大家瀏覽與下載,而且我所公開的範例都是可以正常執行的,這麼做的用意就是要讓大家能夠更加瞭解文章裡的程式、截圖所表示的內容,文章礙於篇幅的關係,所以只會對部分的程式加以說明,我一直都認為我在文章裡所交代的已經相當詳盡了,但總是有人反應為何照著我文章裡的程式下去做,但總是做不出最後的結果,有時候真的是我沒有交代一些不是重點的細節,但是這些細節總是會影響程式的執行,雖然這些問題在有經驗的開發者眼中是可以輕易解決,但還是有蠻多開發者光是看文章然後跟著做就已經頭昏眼花了,遇到問題後就沒有太多精神可以去研究如何解決了。

所以公開完整的原始碼就是讓大家可以直接看到我所完成的內容,並且不是片段或是無法執行的假東西,而是可以正確執行的專案,因為我最怕聽到的就是「我都有照著你文章的內容,但還是做不出來」「我所寫的程式跟你文章裡所寫的都是一樣的,為何執行還是有錯?」「架構、程式、格式都一樣,還是一樣做不出來」,有時候並不是完全照抄就能夠做出一樣的東西,總是會有一些地方、細節會影響最後的執行結果,所以當看著我的文章照著做然後遇到問題的時候,就請到 GitHub 上面看原始碼,甚至於我更建議大家去下載完整的原始碼,兩相對照之下就可以知道你所做的到底是遺漏了什麼關鍵或是疏忽了什麼內容。

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。