日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

在ASP.NET MVC中进行排序

發(fā)布時(shí)間:2025/7/14 asp.net 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ASP.NET MVC中进行排序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在上一篇文章中曾經(jīng)說了一個(gè)排序,當(dāng)然,那個(gè)是客戶端的排序,能力有限。

但是在我的項(xiàng)目中卻真的就需要一個(gè)排序功能,鄙人不才,能力有限,寫了一堆丑陋的代碼,僅實(shí)現(xiàn)了功能,希望路過的神們r(jià)eview下。

好,廢話不多說,直接【插入】主題吧。(咦?這個(gè)詞很好啊。)

首先早Models里創(chuàng)建一個(gè)實(shí)體,這里沒弄數(shù)據(jù)庫,湊合湊合吧,就瞎寫了個(gè)實(shí)體。

代碼如下:

public class UserInfo
{
public int ID { set; get; }
public string Name { set; get; }
public int Age { set; get; }
}

然后創(chuàng)建一個(gè)controller,代碼如下:

public ActionResult Index()
{

return View();
}

然后是創(chuàng)建一個(gè)view。

由于是隨便寫寫,所以就不在弄bll了。在controller里創(chuàng)建3個(gè)方法。

第一個(gè)充當(dāng)數(shù)據(jù)源:

[NonAction]
private List<UserInfo> AllUsers()
{
List
<UserInfo> list = new List<UserInfo>();
list.Add(
new UserInfo() {ID=1,Name="張三",Age=18 });
list.Add(
new UserInfo() { ID = 2, Name = "李四", Age = 18 });
list.Add(
new UserInfo() { ID = 3, Name = "王五", Age = 17 });
list.Add(
new UserInfo() { ID = 4, Name = "趙六", Age = 19 });
list.Add(
new UserInfo() { ID = 5, Name = "田七", Age = 22 });
list.Add(
new UserInfo() { ID = 6, Name = "周八", Age = 10 });
list.Add(
new UserInfo() { ID = 7, Name = "吳九", Age = 33 });
list.Add(
new UserInfo() { ID = 8, Name = "鄭十", Age = 26 });
return list;
}

當(dāng)然,別忘記引命名空間。

第二個(gè)和第三個(gè)是排序的重載方法,(丑陋的代碼來了)

[NonAction]
private List<UserInfo> GetUsers()
{
return AllUsers();
}
[NonAction]
private List<UserInfo> GetUsers(string sort, bool? desc)
{
List
<UserInfo> list = AllUsers();
if (desc==true)
{
switch (sort)
{
case "ID":
list
= list.OrderByDescending(m => m.ID).ToList();
break;
case "Name":
list
= list.OrderByDescending(m => m.Name).ToList();
break;
case "Age":
list
= list.OrderByDescending(m => m.Age).ToList();
break;
}

}
else
{
switch (sort)
{
case "ID":
list
= list.OrderBy(m => m.ID).ToList();
break;
case "Name":
list
= list.OrderBy(m => m.Name).ToList();
break;
case "Age":
list
= list.OrderBy(m => m.Age).ToList();
break;
}

}
return list;
}

由于desc是bool?,所以我只會這樣判斷。

然后是action的代碼:

public ActionResult Index(string sort,bool? desc)
{
List
<UserInfo> list ;
if (String.IsNullOrEmpty(sort) && desc != null)
{
list
= GetUsers();
}
else
{
list
= GetUsers(sort, desc);
}

ViewBag.sort
= sort;
ViewBag.desc
= !desc;
return View(list);
}

這兩個(gè)viewbag其實(shí)就是以前的viewdata,在這里需要傳遞到view中,充當(dāng)開關(guān)。

那么我們就來看view里的代碼吧,其實(shí)很簡單:

<table>
<tr>
<th>
<%:Html.ActionLink("ID","Index",new{sort="ID",desc = ViewBag.sort=="ID"?ViewBag.desc:true}) %>
</th>
<th>
<%:Html.ActionLink("姓名","Index",new{sort="Name",desc=ViewBag.sort=="Name"?ViewBag.desc:true}) %>
</th>
<th>
<%:Html.ActionLink("年齡","Index",new{sort="Age",desc=ViewBag.sort=="Age"?ViewBag.desc:true}) %>
</th>
</tr>
<%foreach (MvcApplication1.Models.UserInfo info in Model)
{
%>
<tr>
<td>
<%:info.ID %>
</td>
<td>
<%:info.Name %>
</td>
<td>
<%:info.Age %>
</td>
</tr>
<%} %>
</table>

當(dāng)然,記得把view做成強(qiáng)類型。

這樣,在點(diǎn)擊列頭的時(shí)候就實(shí)現(xiàn)了排序。

當(dāng)然,可能有人喜歡無刷排序,或許有人會說,應(yīng)該很麻煩吧。其實(shí)在ASP.NET MVC 3中,很多東西都是現(xiàn)成的,必須把剛才的功能做成ajax的。

首先加入js文件:

<script src="http://www.cnblogs.com/Scripts/jquery-1.4.4-vsdoc.js" type="text/javascript"></script>
<script src="http://www.cnblogs.com/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="http://www.cnblogs.com/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>

然后呢,把table做成局部view,也就是PartialView:

在PartialView中的table中,加上id,記得這個(gè)view也要強(qiáng)類型,就是

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<List<MvcApplication1.Models.UserInfo>>" %>

<table id="datalist">
<tr>
<th>
<%:Html.ActionLink("ID","Index",new{sort="ID",desc = ViewBag.sort=="ID"?ViewBag.desc:true}) %>
</th>
<th>
<%:Html.ActionLink("姓名","Index",new{sort="Name",desc=ViewBag.sort=="Name"?ViewBag.desc:true}) %>
</th>
<th>
<%:Html.ActionLink("年齡","Index",new{sort="Age",desc=ViewBag.sort=="Age"?ViewBag.desc:true}) %>
</th>
</tr>
<%foreach (MvcApplication1.Models.UserInfo info in Model)
{
%>
<tr>
<td>
<%:info.ID %>
</td>
<td>
<%:info.Name %>
</td>
<td>
<%:info.Age %>
</td>
</tr>
<%} %>
</table>

那么,default1這個(gè)view中代碼就變成:

<div>
<%:Html.Partial("ViewUserControl1",Model) %>
</div>

下面,僅需要改鏈接就可以了,改成這樣:

<tr>
<th>
<%:Ajax.ActionLink("ID", "Index", new { sort = "ID", desc = ViewBag.sort == "ID" ? ViewBag.desc : true }, new AjaxOptions { UpdateTargetId = "datalist", InsertionMode = InsertionMode.Replace })%>
</th>
<th>
<%:Ajax.ActionLink("姓名", "Index", new { sort = "Name", desc = ViewBag.sort == "Name" ? ViewBag.desc : true }, new AjaxOptions { UpdateTargetId = "datalist", InsertionMode = InsertionMode.Replace })%>
</th>
<th>
<%:Ajax.ActionLink("年齡", "Index", new { sort = "Age", desc = ViewBag.sort == "Age" ? ViewBag.desc : true }, new AjaxOptions { UpdateTargetId = "datalist", InsertionMode = InsertionMode.Replace })%>
</th>
</tr>

其中,updatetargetid是更新的內(nèi)容id,這里就是這個(gè)table,第二個(gè)是替換。

這時(shí)我們運(yùn)行再來看的話,就會發(fā)現(xiàn)現(xiàn)在的排序變成異步的了。怎么樣,很簡單吧。

轉(zhuǎn)載于:https://www.cnblogs.com/fengyishou/archive/2011/04/25/2028513.html

總結(jié)

以上是生活随笔為你收集整理的在ASP.NET MVC中进行排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕乱码在线人视频 | 亚洲精品无码永久在线观看 | 国产国语对白 | 中国极品少妇xxxx做受 | 欧美黄色大片免费看 | 黄色私人影院 | 毛片999 | 极品av在线| 国产春色 | 草在线 | 波多野结衣一区二区三区 | 欧美老熟妇一区二区三区 | 黄色网免费 | 女人av| 色婷在线| 少妇人妻偷人精品无码视频 | 亚洲一区二区三区电影 | 久操视频免费在线观看 | 操操av | 无码粉嫩虎白一线天在线观看 | 老女人黄色片 | 成年人网站免费看 | 国产一区二区三区四区在线观看 | 国内成人综合 | 欧美日韩一二区 | 国产一级性生活片 | 九九精品在线播放 | 奶水喷溅 在线播放 | 丰满人妻一区二区三区无码av | 日韩无| 一区二区三区四区五区在线视频 | 两性免费视频 | 黄色一毛片 | 丁香五香天堂 | 超碰在线免费看 | 欧美成人久久久免费播放 | 波多野结衣视频一区二区 | 亚洲自拍激情 | 国产欧美日韩精品一区二区三区 | 午夜精品久久久久久久久久久久 | 亚洲成人7777| 中国大陆毛片 | 一个人看的www日本高清视频 | 欧美精品91 | 无码国精品一区二区免费蜜桃 | 午夜免费福利在线 | 国产超级av | 天天色天天射综合网 | 久久免费成人 | 免费荫蒂添的好舒服视频 | 少女视频的播放方法 | 天天干在线观看 | 亚洲第一大综合区 | 日本一区二区三区视频在线观看 | 自拍偷拍亚洲图片 | 日视频| 国内精品一区二区 | 欧美日韩综合在线 | 午夜视频在线免费看 | 午夜影院免费在线观看 | av小说免费在线观看 | 雷电将军和丘丘人繁衍后代视频 | 依依成人在线 | 中国妇女做爰视频 | 成年人拍拍视频 | 日韩欧美国产一区二区三区在线观看 | 午夜在线观看视频 | 婷婷午夜精品久久久久久性色av | 国产精品19乱码一区二区三区 | 天天色天天射天天操 | 亚洲视频在线观看网址 | jizz韩国| 美女露出让男生揉的视频 | 日本激情网站 | bt天堂新版中文在线地址 | 99热最新在线 | 久久天天躁狠狠躁夜夜躁 | 老熟妇仑乱视频一区二区 | 国产精品99久久久久 | 狠狠操在线视频 | 在线不卡av | 人人妻人人澡人人爽欧美一区双 | 免费国偷自产拍精品视频 | 中文字幕在线影院 | 在线看成人 | 爱如潮水3免费观看日本高清 | 日本久久亚洲 | 亚洲无人区码一码二码三码的含义 | 中国毛片在线观看 | 国产日韩二区 | 欧美日韩激情在线 | 成 年人 黄 色 片 | 亚洲你我色 | 136fldh导航福利微拍 | 色8久久 | 看黄色a级片 | 9l视频自拍蝌蚪9l视频 | 中国女人真人一级毛片 | 中文字幕一区在线 |