網頁

2013年12月2日 星期一

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

在「ASP.NET MVC 使用政府公開資料 Part.1」這一篇文章裡我們使用 ASP.NET MVC 透過 HttpClient 取得新北市政府公開資料的「WiFi 熱點」資料,最後將取得的資料存放於 SystemRuntime.Cache 類別的快取當中,這一系列的操作都是使用 Async/Await 非同步的方式來做處理。

因為我們所取得的是原始的資料,上千筆的資料一次全部顯示還真的看不太清楚,所以我們可以就所取得的資料來進行篩選,在頁面上增加條件過濾的選項,讓使用者可以藉由條件過濾來取得更精確的內容。

 


這一篇其實算是基本操作的練習,先做好下一篇文章的事前準備工作,這一篇要做的是在頁面上增加三個下拉選單,分別是:「區域」「熱點分類」「業者」,而這三個下拉選單的項目內容一樣是從「WiFi熱點」資料裡的欄位取得,在 Controller 裡增加三個取得資料的 Method,

區域

image

熱點分類

image

業者

image

上面作為條件過濾的三個下拉選單 Methods(DistrictSelectList, TypeSelectList, CompanySelectList)其實程式內容都差不多,所以我們可以另外建立一個 Method 然後共用,

image

在 Index Action 方法裡加上取得這三個下拉選單資料的程式,Index Action 方法增加三個參數以及進行條件過濾的處理,

public async Task<ActionResult> Index(string districts, string types, string companys)
{
    //區域
    ViewBag.Districts =
        await this.GetSelectList(await this.GetDistricts(), districts);
    ViewBag.SelectedDistrict = districts;
 
    //熱點分類
    var typeSelectList = 
        await this.GetSelectList(await this.GetHotSpotTypes(), types);
    ViewBag.Types = typeSelectList.ToList();
    ViewBag.SelectedType = types;
 
    //業者
    var companySelectList = 
        await this.GetSelectList(await this.GetCompanys(), companys);
    ViewBag.Companys = companySelectList.ToList();
    ViewBag.SelectedCompany = companys;
 
    var source = await this.GetHotSpotData();
    source = source.AsQueryable();
 
    if (!string.IsNullOrWhiteSpace(districts))
    {
        source = source.Where(x => x.District == districts);
    }
    if (!string.IsNullOrWhiteSpace(types))
    {
        source = source.Where(x => x.Type == types);
    }
    if (!string.IsNullOrWhiteSpace(companys))
    {
        source = source.Where(x => x.Company == companys);
    }
 
    return View(source.OrderBy(x => x.District).ToList());
}

調整檢視頁面,增加表單以及三個下拉選單,

image

執行結果

image

image

 

這一篇就說到這邊,而下一篇則是要做分頁功能。

 

以上

2 則留言:

  1. 請問版主程式字體顏色在哪設定?看你的程式感覺好清楚,謝謝

    回覆刪除
    回覆
    1. http://kevintsengtw.blogspot.tw/p/visual-studio.html

      換個好字型讓程式開發有效率
      Visual Studio 2013 佈景主題與 Code Style
      Visual Studio - 使用 Twainsoft StudioStyler 快速更換 Style

      刪除