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(, "w.PostingTime"); DataTablesRequest parm = new DataTablesRequest(this.Request); //处理对象
int pageIndex = parm.iDisplayLength == ? : parm.iDisplayStart / parm.iDisplayLength;
filter.PageIndex = pageIndex; //页索引
filter.PageSize = parm.iDisplayLength; //页行数 string strSortField = dicSort.Where(x => x.Key == parm.SortColumns[].Index).Select(x => x.Value).FirstOrDefault(); string strSortDire = parm.SortColumns[].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 / , //重量
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 == ? 0m : (u.ExpressFee + u.OperateFee + u.InComeOtherFee -
(u.WayBillFee + u.ProcessingFee + u.CostOtherFee)) / (u.ExpressFee + u.OperateFee + u.InComeOtherFee) * ), ) + "%",
//毛利率 毛利率=(总收入-总的支出的成本)/总收入*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搭建项目后台UI框架—1、后台主框架

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  2. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  3. ASP.NET MVC搭建项目后台UI框架—2、菜单特效

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  4. ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  5. ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  6. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  7. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  8. ASP.NET MVC搭建项目后台UI框架—7、统计报表

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...

  9. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

随机推荐

  1. PHP运行及语句及逻辑

    php开发网页需要存放在wamp根目录下的www文件夹中才可运行成功.同时wamp要处于运行状态.  无站点情况下打开方式:  网址栏中输入:localhost/文件名称 代码规范: 用 <?p ...

  2. 【WP开发】读写剪贴板

    在WP 8.1中只有Silverlight App支持操作剪贴板的API,Runtime App并不支持.不过,在WP 10中也引入了可以操作剪贴板的API. 顺便说点题外话,有人会说,我8.1的开发 ...

  3. ClickOnce部署(5):自定义安全权限

    今天我们来探讨一下在ClickOnce部署中如何严格控制应用程序的权限. 演示应用 为了在下文中能更好地演示,我们先要做一个测试项目.也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是 ...

  4. 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程

    Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...

  5. mac下安装tomcat

    在window下面搭建tomcat环境很简单,那是因为我们不熟悉mac系统,当我们习惯了命令行的时候,也是so easy,只要通过以下几个步骤就可以解决,本人亲测可用,不会可以留言. 1.进入apch ...

  6. 关于MyCAT字符集的验证

    MyCAT默认字符集是UTF8 下面通过查看日志来验证不同的MySQL客户端字符集和服务器字符集对于MyCAT的影响. 日志中与字符集有关的主要有三部分: 1. 初始化MyCAT连接池 2. 心跳检测 ...

  7. CRL 版本2.2.0.0发布

    重要更新: 增加了关联查询 优化了缓存查找效率 关联查询有以下两种形式 返回Select结果,结果为动态对象 将结果附加给当前对象索引值 关联查询有累加效果,可关联多个表可通过匿名对象指定返回的别名, ...

  8. iOS开发——高级特性&Runtime运行时特性详解

    Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 ...

  9. ASP.NET通过递归添加树(Treeview)

    先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...

  10. App Widget

    AppWidgetProviderInfo对象: 为App Widget提供元数据(描述数据的数据,如XML.关系型数据的表结构),包括布 局,更新频率等数据.这个对象被定义在XML文件当中: App ...