發表文章

目前顯示的是 6月, 2014的文章

[MVC] 自訂RadioButtonList

     MVC若要使用Radio Button,預設的HtmlHelper只有RadioButtonFor方法可以使用,這是單一個Radio Button,所以若要呈現5個按鈕就要呼叫5次,或使用迴圈巡覽資料集來叫用。而針對顯示的文字及Html也須另外撰寫。針對這種寫了會令人在維護時眼花瞭亂的程式,最好的方式還是寫了一個Helper來解決。 改善前的作法 @foreach (var item in DataUtility.GetDatas()) { <label class="radio"> @Html.RadioButtonFor(model => model.ProductId, item.ProductId) @Html.DisplayFor(model => item.ProductName) </label> }

[Expression Tree] MSDN學習系列 3-使用運算式樹狀結構建置動態查詢

   本系列的最後一篇文章,此篇要講的是如何使用運算式樹狀架構來 建立動態 (Dynamic) 的 LINQ 查詢 ,並在執行時期產生對應的查詢方法。在開始先來講為何需要動態查詢? 假設我們有一個GridView呈現產品清單,但要提供使用者直接在每個欄位的標題點選作排序、飾選的功能。若要依使用者點選的欄位來查詢的話,程式需依欄位名稱來各別寫Where或Orderby,如下程式 private void TraditionQuery() { string sortColumn = "ProductName"; string filterColumn = "CategoryName"; string filterValue = "HTC"; IQueryable<ProductModel> data = ProductModel.GetDatas(); switch (sortColumn) { case "CategoryName": data = data.OrderBy(m => m.CategoryName); break; case "ProductName": data = data.OrderBy(m => m.ProductName); break; } switch (filterColumn) { case "CategoryName": data = data.Where(m => m.CategoryName == filterValue); break; case "ProductName": data = data.Where(m => m.ProductName == filterValue); break; } } 目前只針對

[多國語系]-前端驗證測試記錄-後續作法

圖片
針對 前篇測試 ,在參考相關的文章有提到: Culture 屬性: 負責判定與文化特性相關功能的結果 (例如: 日期、數字和貨幣格式等)。 UICulture 屬性: 負責覺得要為網頁載入哪一國的資源檔。 根據以上的特性,程式調整如下: 1.南非語系維持en-ZA不變 針對英文語系的處理,在設定CurrentCulture時,設定成en,而設定CurrentUICulture則依使用者設定的語系,如下程式判斷en-開頭則取en來使用。 void MvcApplication_BeginRequest(object sender, EventArgs e) { if (CurrentCultureName.StartsWith("en-")) System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en"); else System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(CurrentCultureName); System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(CurrentCultureName); }

[多國語系] MVC ViewModel自動載入語系資源-驗證訊息

圖片
    繼前一篇 [多國語系] MVC ViewModel自動載入語系資源 ,此篇要講的是把一些常用的驗證自動加上語系,例:Required、Range...等。在基本的情況下我們在Property冠上Required,只要使用者未填值下按下Submit就會出現內建的錯誤訊息,如下: 中文 英文 而要加上自訂的語系的話則需要再指定 ErrorMessageResourceName 及 ErrorMessageResourceType 改善目標 不要設定語系名稱及語系型別 自動為驗證Property跟資源檔作結合

[Expression Tree] MSDN學習系列 2-修改運算式樹狀架構

圖片
     繼上篇 運算式樹狀架構 ,此篇要講的是如何修改運算式樹狀架構,預設的情形下,運算式樹狀架構是不可直接修改的.....嗯~~~有看沒有懂…對吧..XD,下列程式碼,就是一個完整的樹狀結構,但你不可以直接去異動他任一節點,例如:將大於換小於、and換成or Expression<Func<string, bool>> expr = name => name.Length > 10 && name.StartsWith("G");

[Web API] 如何使用Route Debugger對Routing偵錯

圖片
   今天在測試Web Routing的設定時,感覺大海撈針…..找不出錯誤到底在哪?幸好MSDN剛好有篇文章在寫這個,順便記錄一下以免日後忘了..。 1.從Nuget加入 WebApiRouteDebugger PM> Install-Package WebApiRouteDebugger 2.裝完後須調整設定 瀏覽 :http://localhostxxx/ rd ,會出錯下圖組件錯誤

[多國語系] MVC ViewModel自動載入語系資源

圖片
      一般而言我們Mode的屬性若沒冠上[Display]的話,View會以該Property的名稱來顯示,而加上Display後,若需要加上語系的話,除了設定Name還要再多設定ResourceType,如下: DRY原則     上方的程式碼整個看起來就是令人眼花瞭亂,每個Property要冠上Display及設定ResourceType,且差異的部份只Name的指定,程式碼重複的部分一大堆...。根據DIY的原則....不不不..是DRY的原則,不要一直重覆你自已,我們需要 更乾淨的作法 。 改善目標 為了保持較乾淨的類別及加速日後的開發與維護,列出以下幾點需求: 不要設定語系名稱及語系型別 每個屬性不要冠上[Display] 自動為Model的Property跟資源檔作結合

[Expression Tree] MSDN學習系列 1-運算式樹狀架構

圖片
    最近參考一些較知名的Library,例:Automapper、DynamicQuery..等等,都有用到大量的Expression來作動態查詢,由於Expression認識的不夠深,以致在擷取某些程式碼來修改時都覺得很吃力......=.=。而這兩天剛好看到msdn有提供一系列的文章,想說將它整個練習一遍,並將所理解的記錄下來 ps:其實是轉化自己較容易懂的語言XD。 什麼是Expression Tree? 就是將程式碼當作樹狀結構的資料,並可以動態修改Runtime的程式碼、動態查詢及取得程式碼中的相關資訊。

[多國語系]-前端驗證測試記錄

圖片
測試目的    讓前端通過多國語系的數值與日期驗證,參考 文章1 、 文章2 後,另作一個測試記錄,ps :結果預告:失敗 1.Nuget加入套件 : jQuery.Validation.Globalize 2.撰寫一個共用方法取得目前的語系名稱 3.引用相關Script ps:需照順序 紅框處 為以語系加入 對應 的js 4.設定前端global的文化為目前的語系 上述步驟完成後,開始測試相關案例,以 中文、英文 及 南非 三個為語系選項 1.日期-格式化- d :為會依據不同的語系呈現yyyy/MMM/dd or dd/MM/yyyy 測試結果—>OK 2.日期-格式化-yyyy-MM-dd:此為配合html5的日期格式 測試結果—> Fail 原因:yyyy-MM-dd格式無法通過多國語系的驗證 解決方法:擴充date驗證方法,使用統一格式yyyy-MM-dd的方式驗證

[TechEd-2014-North-America] Visual Studio Power User: Tips and Tricks

圖片
針對此 Session ,個人覺得常用的一些實用技巧作memo 1.方案資料夾-將範圍設定在此 before after