asp.net-mvc – 在asp.net MVC中排序表
发布时间:2020-05-25 05:31:36 所属栏目:asp.Net 来源:互联网
导读:我想知道人们在asp.net mvc中如何排序表? 我听说过与非分页表(比如jquery的表格排序器)相当不错的javascript解决方案,但是我需要一个能与分页表一起使用的解决方案. 我正在开展的项目目前使用以下解决方案,但我发现它非常混乱. 调节器 public ActionResult S
|
我想知道人们在asp.net mvc中如何排序表?
我正在开展的项目目前使用以下解决方案,但我发现它非常混乱. 调节器 public ActionResult Sort(string parameter)
{
IEnumerable<IProduct> list;
if (Session["Model"] != null)
list = (IEnumerable<IProduct>)Session["Model"]).ToList<IProduct>();
else
list = _service.GetAll();
if (Session["parameter"] == null && Session["sortDirection"] == null)
{
//set the parameter and set the sort to desc
Session["parameter"] = parameter;
Session["sortDirection"] = "DESC";
}
else if (Session["parameter"] != null) //already set so not the first time
{
//same parameter sent
if (Session["parameter"].ToString().Equals(parameter))
{
//check sort direction and reverse
if (Session["sortDirection"].ToString().Equals("DESC"))
Session["sortDirection"] = "ASC";
else
Session["sortDirection"] = "DESC";
}
else //different parameter sent
{
Session["sortDirection"] = "DESC";
Session["parameter"] = parameter;
}
}
if (Session["sortDirection"].CompareTo("ASC") == 0)
list = Models.ContollerHelpers.SortingHelper.OrderBy(list.AsQueryable(),column);
else
list = Models.ContollerHelpers.SortingHelper.OrderByDescending(list.AsQueryable(),column);
return View("Results",list.ToList);
}
帮手 public class Helper()
{
private static IOrderedQueryable<T> OrderingHelper<T>(IQueryable<T> source,string propertyName,bool descending,bool anotherLevel)
{
ParameterExpression param = Expression.Parameter(typeof(T),string.Empty); // I don't care about some naming
MemberExpression property = Expression.PropertyOrField(param,propertyName);
LambdaExpression sort = Expression.Lambda(property,param);
MethodCallExpression call = Expression.Call(
typeof(Queryable),(!anotherLevel ? "OrderBy" : "ThenBy") + (descending ? "Descending" : string.Empty),new[] { typeof(T),property.Type },source.Expression,Expression.Quote(sort));
return (IOrderedQueryable<T>)source.Provider.CreateQuery<T>(call);
}
public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source,string propertyName)
{
return OrderingHelper(source,propertyName,false,false);
}
public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source,true,false);
}
public static IOrderedQueryable<T> ThenBy<T>(this IOrderedQueryable<T> source,true);
}
public static IOrderedQueryable<T> ThenByDescending<T>(this IOrderedQueryable<T> source,true);
}
}
列表显示 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Models.Interface.IProduct>>" %>
<% Session["model"] = Model; %>
<table>
<tr>
<th>
Edit Details
</th>
<th>
<%=Html.ActionLink("Id","Sort",new {parameter ="Id"}) %>
</th>
<th>
<%=Html.ActionLink("Name",new { parameter = "Name"})%>
</th>
<th>
<%=Html.ActionLink("Status",new { parameter = "Status" })%>
</th>
<th>
<%=Html.ActionLink("Notes",new { parameter = "Notes"})%>
</th>
</tr>
<% foreach (var item in Model){ %>
<tr>
<td>
<%= Html.ActionLink("Edit","Edit",new { id=item.Id }) %> |
</td>
<td>
<%= Html.Encode(item.Id) %>
</td>
<td>
<%= Html.Encode(item.Name) %>
</td>
<td>
<%= Html.Encode(item.Status) %>
</td>
<td>
<%= Html.Encode(item.Notes) %>
</td>
</tr>
<% } %>
</table>
这是做这样的事情的唯一方法吗? 解决方法查看DataTables @ DataTables这将让您浏览结果并通过简单的设置进行查询.它与ajax和json数据一起工作.看样品.希望这将帮助您.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC 4 Web API无法映射包含字符串“
- asp.net-mvc-3 – 强制重新验证mvc3不显眼的远程验证
- 身份验证 – 如何仅为ASP.NET 5中的受保护操作添加令牌验证
- asp.net-mvc – 在ASP.NET MVC 3 Action方法中并行运行任务
- asp.net-mvc – 我可以在Ajax.ActionLink中使用OnSuccess事
- asp.net-mvc – 如何在RegularExpression中忽略大小写?
- asp.net-mvc – 控制器中的模拟服务器
- .net – MVC 4中MVC 4中强类型ActionLink的语法是什么?
- asp.net – IE 11中的报表查看器打印按钮
- ASP.NET machineKey配置部分默认位置
推荐文章
站长推荐
热点阅读
