ASP.NET MVC搭建项目后台UI框架—9、服务器端排序
- ASP.NET MVC搭建项目后台UI框架—1、后台主框架
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
- ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
- ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
- ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
- ASP.NET MVC搭建项目后台UI框架—7、统计报表
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
- ASP.NET MVC搭建项目后台UI框架—9、服务器端排序
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、服务器端排序相关推荐
- Asp.net MVC 搭建属于自己的框架(一)
为什么要自己搭框架? 大家伙别急,让我慢慢地告诉你!大家有没有这种感觉,从一家跳槽到另一家公司,公司的框架往往是不相同的,这样你必须就得摒弃原来的,学习新的框架. 问题是你用习惯了一种框架,比如封装的 ...
- 国内主流在用的10大后台UI框架,私活必备
目录 vue-Element-Admin AdminLTE ant-design-pro tabler ng2-admin Gentelella iview-admin blur-admin vue- ...
- 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...
- angular2+typescript在asp.net MVC Web项目上的实现
网上现在还没有关于angular2+typescript在asp.net mvc web项目上的实现的系统介绍,这里我也只是探索到了一个简单的方式,还有很多问题没能解决.但是能有个好的开头也值得记录一 ...
- BG-UI,一个可以快速上手的后台UI框架
BG-UI,一个可以快速上手的后台UI框架 1.简述 此项目为后台UI框架,并根据url中的hash提供简单的路由功能,页面的数据渲染依然交给服务器端. UI基于BootStrap3.兼容移动端.兼容 ...
- 开箱即用的后台UI框架eui(原eadmin)
(很多人问有没有开箱即用,不需要复杂打包环境配置的功能强大.界面精美的后台UI框架,现在他来了) eui 基于原生JS开发,开箱即用,无需打包环境,专门为不太熟悉mvvm开发模式的人员定制打造.此次是 ...
- Artiely Vue Admin - 基于蚂蚁金服Ant Design构建的高颜值开源管理后台UI框架
继承 Ant Design 专业美观的优点,支持PC/手机/平板的响应式布局的优秀后台管理系统 UI 框架. 关于 Artiely Vue Admin Ant Design 是阿里巴巴蚂蚁金服团队出品 ...
- vue3.0 结合element ui 开发后台ui框架
vue3.0 结合element ui 开发后台ui框架,根据element ui 官网步骤安装出现报错信息,解决方法: 按照element UI官网步骤, 启动vue 3.0项目:npm run s ...
- 开源推荐 - EAdmin开箱即用的后台UI框架
很多朋友在问,有没有一款不需要打包环境,不需要学习成本,开箱即用的后台UI框架,今天他来了. EAdmin正式更新至2.0版本,全新的配色,更加丰富的组件,满足中小型项目的后台需求,是一套完整的后台U ...
- 图文详解远程部署ASP.NET MVC 5项目
图文详解远程部署ASP.NET MVC 5项目 原文:图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由 ...
最新文章
- 5年Python功力,总结了10个开发技巧
- icp mysql_MySQL · 特性分析 · Index Condition Pushdown (ICP)
- vue 树形控件可编辑_vue.js element-ui组件改iview 第一期 tree树形控件
- 客户端压测server端计算qps以及不同延迟时间下响应数量所占百分比
- 29.AngularJS 简介
- 计算机毕业设计Java新能源汽车故障分析2021(源码+系统+mysql数据库+Lw文档)
- IT30: 30岁IT人CTOCIO职业生涯探讨(2009-2013)
- ImageNet中英文类别对照
- 什么缩写是mzj_mzjh是什么意思,mzjh缩写代表什么意思,mzjh是什么含义
- HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明
- linux系统外接硬盘_Mac如何在外置硬盘上安装Linux
- mysql身份证号用什么数据类型_建SQL表时身份证号码的数据类型最好选什么
- C++连接SQL的简单例子(win 和 linux)
- 把已有普通文件夹变成git仓库以及git常用命令的使用
- Emgucv使用中常用函数总结
- mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统
- Quia maxime eius ipsa.
- 使用STM32CUBEMX HAL库读写SD卡
- echarts引入geo地图数据,前端学习记录01
- 【银行笔试题】技术+业务,综合题类
热门文章
- PHP报错:Malformed UTF-8 characters, possibly incorrectly encoded
- PHP 删除文件,文件下的目录
- linux中id命令的功能,linux中的id命令
- javaweb使用quartz
- 安卓应用,在吾手机上正常,在另外手机上崩溃,因为缺少so库
- 开源项目:测试安卓设备摄像头的帧率
- 下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
- JDK8编译,JDK8运行错误
- 想起一则急着争权的故事
- 几人同行时步伐总是整齐