一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET MVC中對(duì)數(shù)據(jù)進(jìn)行排序的方法

  本系列是講解如何在ASP.NET mvc中對(duì)數(shù)據(jù)進(jìn)行展示、排序、分頁(yè)等的系列文章。在上周的文章中,一步一步教會(huì)了大家如何使用ASP.NET MVC框架去的展示數(shù)據(jù)。在上周的文章中,我們先用Visual Studio創(chuàng)建了一個(gè)新的ASP.NET MVC應(yīng)用程序,接著連接到了Northwind數(shù)據(jù)庫(kù),并展示了如何使用微軟的LINQ-SQL的工具去訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),接著指導(dǎo)如何去實(shí)現(xiàn)視圖層去展示產(chǎn)品信息及如何設(shè)計(jì)控制器。

  本文是在上一篇文章的例子基礎(chǔ)上,展示了如何去實(shí)現(xiàn)數(shù)據(jù)的雙向排序。如果你是已經(jīng)熟悉ASP.NET WebForm開(kāi)發(fā)的開(kāi)發(fā)者,你應(yīng)該知道,在GridView控件中可以很簡(jiǎn)單的通過(guò)點(diǎn)擊就能實(shí)現(xiàn)排序。但可惜的是,在ASP.NET MVC中實(shí)現(xiàn)排序的功能并不是那么簡(jiǎn)單,但工作量也沒(méi)有顯著增多。在ASP.NET MVC中,我們能更多地控制網(wǎng)格和排序的界面布局和標(biāo)記,以及通過(guò)何種機(jī)制來(lái)實(shí)現(xiàn)排序。以往使用GridView控件時(shí),排序是通過(guò)將參數(shù)以POSTBACK的形式回傳到后臺(tái),以決定用什么樣的列進(jìn)行排序以及是以升序或降序-排列,回傳的參數(shù)作為隱藏表單域提交。在本文中,我們將使用查詢字符串參數(shù)來(lái)指定排序參數(shù),這意味著排序的順序可以被搜索引擎搜索到,能通過(guò)電子郵件發(fā)送給同事,還能做很多GridView內(nèi)置排序功能不能實(shí)現(xiàn)的事情。

  與上一篇文章一樣,本文提供了分步的指導(dǎo)說(shuō)明,包括一個(gè)完整的可以工作的代碼例子,在文章末尾可以下載。

  步驟0:一個(gè)簡(jiǎn)要指南

  本文將介紹如何實(shí)現(xiàn)雙向的排序,并假定讀者已經(jīng)閱讀掌握了上一篇文章介紹的內(nèi)容。

  在上一篇文章中,我們可以通過(guò)ASP.NET MVC中的URL轉(zhuǎn)發(fā)功能,以下面的地址形式訪問(wèn)產(chǎn)品的首頁(yè):

  www.yoursite.com/Products/Index(可以簡(jiǎn)寫(xiě)成www.yoursite.com/Products)。本文中,我們將用下面的URL去訪問(wèn)要排序的內(nèi)容:

  www.yoursite.com/Products/Sortable?sortBy=ColumnNameascending=true|false

  具體的一些例子如下:

  /Products/Sortable- 這表示按默認(rèn)順序排列產(chǎn)品。當(dāng)沒(méi)指定排序的列時(shí),默認(rèn)按產(chǎn)品名稱的字母順序(如升序)排列。換句話說(shuō),如果SortBy參數(shù)沒(méi)有提供,按產(chǎn)品名稱排序,如果不提供ascending參數(shù),按遞增順序排列。

  /Products/Sortable?sortBy=UnitPrice 按單價(jià)的升序排序產(chǎn)品。

  /Products/Sortable?sortBy=UnitPriceascending=false – 按UnitPrice列降序排序(即從最昂貴的到價(jià)格最便宜的)。

  跟使用GridView控件一樣,在點(diǎn)擊網(wǎng)格中標(biāo)題行中的列名時(shí)可以進(jìn)行。但不同于GridView的是,我們每次點(diǎn)列的這些標(biāo)題,是以超鏈接的形式實(shí)現(xiàn)的,并且?guī)в袇?shù),比

  如表格中有價(jià)格這個(gè)列,當(dāng)?shù)谝淮吸c(diǎn)擊列名時(shí),將以

  www.yoursite.com/Products/Sortable?sortBy=UnitPriceascending=true的形式發(fā)送鏈接到后端,請(qǐng)注意的是,在網(wǎng)格中顯示的列名,不一定跟在URL中sortBy查詢字符串參數(shù)中傳遞的名稱是一樣的。sortBy 參數(shù)提供的是在數(shù)據(jù)庫(kù)中的列名,兩者并不要求一定相同。

  步驟1:創(chuàng)建指定的視圖模型

  在上一篇文章的演示中,我們使用了產(chǎn)品的集合作為其實(shí)體模型(以NorthwindDataContext去命名)。這對(duì)簡(jiǎn)單的網(wǎng)格來(lái)說(shuō)是可以的,但對(duì)于要排序的數(shù)據(jù)表格,需要知道一點(diǎn)的不僅僅是產(chǎn)品的集合,還要視圖層方面知道哪些列的數(shù)據(jù)需要進(jìn)行排序,是按升序或降序排序,如果用戶要點(diǎn)的列已經(jīng)按某一個(gè)順序已排序的話,則此時(shí)會(huì)按原來(lái)的順序排序(假設(shè)某列已經(jīng)是按升序排列,用戶點(diǎn)標(biāo)題一次,則倒過(guò)來(lái)按降序排列,再點(diǎn)一次,又按升序,如此類推)。

  為此,我們添加一個(gè)新類,這些類被稱為特定視圖服務(wù)的模型,打開(kāi)上一篇文章中已經(jīng)實(shí)現(xiàn)的應(yīng)用程序,在Models文件夾下添加一個(gè)名為ProductGridModel.cs 的文件,代碼如下:

namespace Web.Models
{
public class ProductGridModel
{
// Data properties
public IEnumerable Product Products { get; set; }



// Sorting-related properties
public string SortBy { get; set; }
public bool SortAscending { get; set; }
public string SortExpression
{
get
{
return this.SortAscending ? this.SortBy + " asc" : this.SortBy + " desc";
}
}
}
}

NET技術(shù)ASP.NET MVC中對(duì)數(shù)據(jù)進(jìn)行排序的方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产视频播放 | 亚洲六月丁香六月婷婷花 | 91成人国产福利 | 久久国产精品国产自线拍免费 | 国产精品热久久毛片 | 伊人色在线观看 | 狠狠干五月天 | 九九九九九热 | 午夜精品久视频在线观看 | 亚洲一区二区三区视频 | 国产一区不卡 | 久草色在线 | 天天色综合社区 | 国产在线播放一区 | 色哟哟www视频在线观看高清 | 香蕉久人久人青草青草 | 热久久国产欧美一区二区精品 | 多人伦交性欧美在线观看 | 国产精品好好热在线观看 | 久久国产视频网站 | 麻豆第一页| 纯毛片| 午夜免费的国产片在线观看 | 91国视频在线 | 在线观看亚洲 | 狂野欧美性猛交xxxx巴西 | 丁香六月综合激情 | 久色伊人 | 久青草国产在线视频亚瑟影视 | 国产对白在线播放九色 | 韩国美女爽快一级毛片黄 | 午夜国产大片免费观看 | 欧美激情一区二区三区中文字幕 | 日本在线视频网址 | 成人在线视频免费看 | 欧美成人福利视频 | 欧美激情 亚洲 | 国产综合亚洲欧美日韩一区二区 | 一区二区三区在线免费看 | 久草视频手机在线观看 | 欧美激情性色生活片在线观看 |