1. ASP.NET MVC搭建项目后台UI框架—1、后台主框架
  2. ASP.NET MVC搭建项目后台UI框架—2、菜单特效
  3. ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
  4. ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
  5. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
  6. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
  7. ASP.NET MVC搭建项目后台UI框架—7、统计报表
  8. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
  9. ASP.NET MVC搭建项目后台UI框架—9、服务器端排序
  10. ASP.NET MVC搭建项目后天UI框架—10、导出excel(数据量大,非常耗时的,异步导出)

关于jquery datables的在服务器端的排序,在网上貌似没有看到.NET的例子,说实话,之前我也迷惑过,习惯了直接从网上找现成的东西,经过一翻搜索,没找到,于是乎,自己调试呗,调了前台,调后台,还真被我看出了规律。事实上datables是支持多列排序的,但是本例,我只写了单列排序。

在控制器中,

  Dictionary<int, string> dicSort = new Dictionary<int, string>(); //排序字段键值对列表 (列序号,列名称)/// <summary>/// 运单异常数据/// </summary>/// <returns></returns>public ActionResult WayBillException(WayBillExceptionFilter filter){return View(filter);}public JsonResult WayBillExceptionList(WayBillExceptionFilter filter){dicSort.Add(2, "w.PostingTime");DataTablesRequest parm = new DataTablesRequest(this.Request);    //处理对象int pageIndex = parm.iDisplayLength == 0 ? 0 : parm.iDisplayStart / parm.iDisplayLength;filter.PageIndex = pageIndex;    //页索引filter.PageSize = parm.iDisplayLength;    //页行数string strSortField = dicSort.Where(x => x.Key == parm.SortColumns[0].Index).Select(x => x.Value).FirstOrDefault();string strSortDire = parm.SortColumns[0].Direction == SortDirection.Asc ? "asc" : "desc";filter.OrderBy = " " + strSortField + " " + strSortDire;var DataSource = Core.Reconciliation.WayBillException.GetByFilter(filter) as WRPageOfList<WayBillException>;int i = parm.iDisplayLength * pageIndex;List<WayBillException> queryData = DataSource.ToList();var data = queryData.Select(u => new{Index = ++i, //行号ID = u.ID,IsInputCost = u.IsInputCost,CusName = u.CusName, //客户简称PostingTime = u.PostingTime == null ? string.Empty : u.PostingTime.Value.ToStringDate(),//收寄日期ExpressNo = u.ExpressNo, //运单号BatchNO = u.LoadBillNum, //提单号Weight = u.Weight == null ? 0m : u.Weight / 1000, //重量WayBillFee = u.WayBillFee, //邮资ProcessingFee = u.ProcessingFee, //邮政邮件处理费InComeWayBillFee = u.ExpressFee, //客户运费InComeOprateFee = u.OperateFee, //客户操作费WayBillMargins = u.WayBillProfit, //运费毛利TotalMargins = u.ExpressFee + u.OperateFee + u.InComeOtherFee - (u.WayBillFee + u.ProcessingFee + u.CostOtherFee), //总毛利Margin = Math.Round((u.ExpressFee + u.OperateFee + u.InComeOtherFee == 0 ? 0m : (u.ExpressFee + u.OperateFee + u.InComeOtherFee - (u.WayBillFee + u.ProcessingFee + u.CostOtherFee)) / (u.ExpressFee + u.OperateFee + u.InComeOtherFee) * 100), 2) + "%", //毛利率 毛利率=(总收入-总的支出的成本)/总收入*100%ReconcileDate = u.ReconcileDate.ToStringDate(), //对账日期CostOtherFee = u.CostOtherFee, //成本 其他费用CostTotalFee = u.WayBillFee + u.ProcessingFee + u.CostOtherFee, //成本 总费用CostStatus = u.CostStatus.ToChinese(),  //成本 状态InComeOtherFee = u.InComeOtherFee, //收入 其他费用InComeTotalFee = u.ExpressFee + u.OperateFee + u.InComeOtherFee, //收入 总费用InComeStatus = u.InComeStatus.ToChinese(),  //收入 状态ExceptionMsg = u.ExceptionMsg, //运单异常原因WayBillCostID = u.WayBillCostID //运单成本ID// ExceptionType = u.ExceptionType  //运单异常状态
            });//decimal totalProfit = 0m;      //总毛利求和//构造成Json的格式传递var result = new{iTotalRecords = DataSource.Count,iTotalDisplayRecords = DataSource.RecordTotal,data = data};return Json(result, JsonRequestBehavior.AllowGet);}

在View中,设置datatables的属性

            bServerSide: true,                    //指定从服务器端获取数据  //跟数组下标一样,第一列从0开始,这里表格初始化时,第四列默认降序order: [[2, "desc"]],

当点击排序的时候,我们可以打开火狐浏览器的Firebug查看下数据

这个第一列是排序的字段的列索引,第二个字段标识有一个排序字段,因为这个控件是支持多列排序的。

DataTablesRequest类,里面我封装了对这些请求的处理。关于这个类的具体代码可以参见ASP.NET MVC搭建项目后台UI框架—7、统计报表

string strSortField = dicSort.Where(x => x.Key == parm.SortColumns[0].Index).Select(x => x.Value).FirstOrDefault();
            string strSortDire = parm.SortColumns[0].Direction == SortDirection.Asc ? "asc" : "desc";

ASP.NET MVC搭建项目后台UI框架—9、服务器端排序相关推荐

  1. Asp.net MVC 搭建属于自己的框架(一)

    为什么要自己搭框架? 大家伙别急,让我慢慢地告诉你!大家有没有这种感觉,从一家跳槽到另一家公司,公司的框架往往是不相同的,这样你必须就得摒弃原来的,学习新的框架. 问题是你用习惯了一种框架,比如封装的 ...

  2. 国内主流在用的10大后台UI框架,私活必备

    目录 vue-Element-Admin AdminLTE ant-design-pro tabler ng2-admin Gentelella iview-admin blur-admin vue- ...

  3. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  4. angular2+typescript在asp.net MVC Web项目上的实现

    网上现在还没有关于angular2+typescript在asp.net mvc web项目上的实现的系统介绍,这里我也只是探索到了一个简单的方式,还有很多问题没能解决.但是能有个好的开头也值得记录一 ...

  5. BG-UI,一个可以快速上手的后台UI框架

    BG-UI,一个可以快速上手的后台UI框架 1.简述 此项目为后台UI框架,并根据url中的hash提供简单的路由功能,页面的数据渲染依然交给服务器端. UI基于BootStrap3.兼容移动端.兼容 ...

  6. 开箱即用的后台UI框架eui(原eadmin)

    (很多人问有没有开箱即用,不需要复杂打包环境配置的功能强大.界面精美的后台UI框架,现在他来了) eui 基于原生JS开发,开箱即用,无需打包环境,专门为不太熟悉mvvm开发模式的人员定制打造.此次是 ...

  7. Artiely Vue Admin - 基于蚂蚁金服Ant Design构建的高颜值开源管理后台UI框架

    继承 Ant Design 专业美观的优点,支持PC/手机/平板的响应式布局的优秀后台管理系统 UI 框架. 关于 Artiely Vue Admin Ant Design 是阿里巴巴蚂蚁金服团队出品 ...

  8. vue3.0 结合element ui 开发后台ui框架

    vue3.0 结合element ui 开发后台ui框架,根据element ui 官网步骤安装出现报错信息,解决方法: 按照element UI官网步骤, 启动vue 3.0项目:npm run s ...

  9. 开源推荐 - EAdmin开箱即用的后台UI框架

    很多朋友在问,有没有一款不需要打包环境,不需要学习成本,开箱即用的后台UI框架,今天他来了. EAdmin正式更新至2.0版本,全新的配色,更加丰富的组件,满足中小型项目的后台需求,是一套完整的后台U ...

  10. 图文详解远程部署ASP.NET MVC 5项目

    图文详解远程部署ASP.NET MVC 5项目 原文:图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由 ...

最新文章

  1. 5年Python功力,总结了10个开发技巧
  2. icp mysql_MySQL · 特性分析 · Index Condition Pushdown (ICP)
  3. vue 树形控件可编辑_vue.js element-ui组件改iview 第一期 tree树形控件
  4. 客户端压测server端计算qps以及不同延迟时间下响应数量所占百分比
  5. 29.AngularJS 简介
  6. 计算机毕业设计Java新能源汽车故障分析2021(源码+系统+mysql数据库+Lw文档)
  7. IT30: 30岁IT人CTOCIO职业生涯探讨(2009-2013)
  8. ImageNet中英文类别对照
  9. 什么缩写是mzj_mzjh是什么意思,mzjh缩写代表什么意思,mzjh是什么含义
  10. HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明
  11. linux系统外接硬盘_Mac如何在外置硬盘上安装Linux
  12. mysql身份证号用什么数据类型_建SQL表时身份证号码的数据类型最好选什么
  13. C++连接SQL的简单例子(win 和 linux)
  14. 把已有普通文件夹变成git仓库以及git常用命令的使用
  15. Emgucv使用中常用函数总结
  16. mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统
  17. Quia maxime eius ipsa.
  18. 使用STM32CUBEMX HAL库读写SD卡
  19. echarts引入geo地图数据,前端学习记录01
  20. 【银行笔试题】技术+业务,综合题类

热门文章

  1. PHP报错:Malformed UTF-8 characters, possibly incorrectly encoded
  2. PHP 删除文件,文件下的目录
  3. linux中id命令的功能,linux中的id命令
  4. javaweb使用quartz
  5. 安卓应用,在吾手机上正常,在另外手机上崩溃,因为缺少so库
  6. 开源项目:测试安卓设备摄像头的帧率
  7. 下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
  8. JDK8编译,JDK8运行错误
  9. 想起一则急着争权的故事
  10. 几人同行时步伐总是整齐