ASP.NET MVC 5 ABP DataTables (一)
JS DataTables 这个组件绑定数据必须要有自己的返回数据格式。但是ABP返回的格式直接绑定是错误。重写ABP返回格式符合DataTables 要求 。
/// <summary>
/// 构造函数
/// </summary>
/// <param name="draw">请求次数计数器</param>
/// <param name="recordsTotal">总共记录数</param>
/// <param name="recordsFiltered">过滤后的记录数</param>
/// <param name="data">数据</param>
/// <param name="error">服务器错误信息</param>
public JsonResult DataTablesResult<TEntity>(
int draw,
int recordsTotal,
int recordsFiltered,
IReadOnlyList<TEntity> data,
string error = null,
JsonRequestBehavior behavior = JsonRequestBehavior.DenyGet)
{
var result = new DataTablesResult<TEntity>(draw, recordsTotal, recordsFiltered, data);
return DataTableJson(result, null, Encoding.UTF8, behavior);
}
public virtual JsonResult DataTableJson(
object data,
string contentType = null,
Encoding contentEncoding = null,
JsonRequestBehavior behavior = JsonRequestBehavior.DenyGet)
{ return new JsonResult()
{
Data = data,
ContentType = contentType,
ContentEncoding = contentEncoding,
JsonRequestBehavior = behavior
};
}
public class DataTablesParameters
{
/// <summary>
/// 请求次数计数器
/// </summary>
public int Draw { get; set; } /// <summary>
/// 第一条数据的起始位置
/// </summary>
public int Start { get; set; } /// <summary>
/// 每页显示的数据条数
/// </summary>
public int Length { get; set; } /// <summary>
/// 数据列
/// </summary>
public List<DataTablesColumns> Columns { get; set; } /// <summary>
/// 排序
/// </summary>
public List<DataTablesOrder> Order { get; set; } /// <summary>
/// 搜索
/// </summary>
public DataTablesSearch Search { get; set; } /// <summary>
/// 排序字段
/// </summary>
public string OrderBy
{
get
{
return Columns != null && Columns.Any() && Order != null && Order.Any()
? Columns[Order[].Column].Data
: string.Empty;
}
} /// <summary>
/// 排序模式
/// </summary>
public DataTablesOrderDir OrderDir
{
get
{
return Order != null && Order.Any()
? Order[].Dir
: DataTablesOrderDir.Desc;
}
}
}
DataTablesParameters
public class DataTablesResult<TEntity>
{ /// <summary>
/// 构造函数
/// </summary>
/// <param name="draw0">请求次数计数器</param>
/// <param name="recordsTotal0">总共记录数</param>
/// <param name="recordsFiltered0">过滤后的记录数</param>
/// <param name="data0">数据</param>
public DataTablesResult(int draw0, int recordsTotal0, int recordsFiltered0, IReadOnlyList<TEntity> data0)
{
draw = draw0;
recordsTotal = recordsTotal0;
recordsFiltered = recordsFiltered0;
data = data0;
} /// <summary>
/// 构造函数
/// </summary>
/// <param name="error0">服务器错误信息</param>
public DataTablesResult(string error0)
{
error = error0;
} /// <summary>
/// 请求次数计数器
/// </summary>
public int draw { get; set; } /// <summary>
/// 总共记录数
/// </summary>
public int recordsTotal { get; set; } /// <summary>
/// 过滤后的记录数
/// </summary>
public int recordsFiltered { get; set; } /// <summary>
/// 数据
/// </summary>
public IReadOnlyList<TEntity> data { get; set; } /// <summary>
/// 错误信息
/// </summary>
public string error { get; set; }
}
DataTablesResult
/* dataTables列内容居中 */
.table { width: 100% !important;}
.table > tbody > tr > td {overflow: hidden; text-overflow: ellipsis;}
.table > thead > tr > th {text-align: center;}
.table > tbody > tr > td {text-align: center;}
/* dataTables表头居中 */
.dataTables_scrollHead, .dataTables_scrollBody { border-bottom: 0px !important;}
.dataTables_scrollHeadInner, #InspectionRecordTable {border-bottom: 1px solid #e7ecf1 !important;margin: 0 !important;}
.scrolltable {height: 350px;overflow-x: hidden;overflow-y: auto;width: 100%;}
CSS
var table = $('#MI_InspectionPlanTable');
table.dataTable({
// Internationalisation. For more info refer to http://datatables.net/manual/i18n
"language": {
"url": '/Scripts/datatables/DataTable_language.json'
},
"bStateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
"sScrollX": "100%", //DataTables的宽
"aLengthMenu": [10, 20, 60], //更改显示记录数选项
"iDisplayLength": 10, //默认显示的记录数
"bAutoWidth": true, //是否自适应宽度
"bPaginate": true, //是否显示(应用)分页器
"bInfo": false, //是否显示页脚信息,DataTables插件左下角显示记录数
"sPaginationType": "full_numbers", //详细分页组,可以支持直接跳转到某页
"bSort": false, //是否启动各个字段的排序功能
"ordering": false,
"bFilter": false, //是否启动过滤、搜索功能
"bProcessing": false, //DataTables载入数据时,是否显示‘进度’提示
//当前这个进度显示有问题 需要调整
"serverSide": true,//true代表后台处理分页,false代表前台处理分页
"dom": "<f<t>ip>",
"ajax": {
"url": "/main/InspectionPlan/GetMI_InspectionPlanAll",
"type": "post",
"data": function (d) {
d.ModelType = 0;
d.FileType = fileType;
},
"error": handleAjaxError() },
"columnDefs":
[ {
"targets": 0,
"render": function (data, type, meta) {
return '<input type="checkbox" class="checkboxes" name="selected" value="' + meta.Id + '" id="checkbox" />';
},
"bSortable": false
}
],
"columns": [
{
"sWidth": "30px"
},
{ "data": "FileName", "bSortable": false },
{ "data": "FileSize", "bSortable": false },
{ "data": "Remarks", "bSortable": false },
{ "data": "CreateTime", "bSortable": false },
{
"sDefaultContent": '<div class="input-group-btn">\
<button type="button" class="btn green-sharp Edit" title="编辑">\
<i class="fa fa-edit"></i>\
</button><span style="margin-left: 5px;"></span> \
<button type="button" class="btn blue-steel Delete" title="删除">\
<i class="fa fa-trash-o"></i>\
</button>\
</div>',
"sWidth": "100px",
"bSortable": false
}
]
});
JS
{
"sProcessing": "正在加载数据...",
"sLengthMenu": "显示_MENU_条 ",
"sZeroRecords": "没有您要搜索的内容",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(全部记录数 _MAX_ 条)",
"sEmptyTable": "<div style='margin:0 auto;text-align:center;'>没有数据</div>",
"sInfoPostFix": "",
"sLoadingRecords": "载入中...",
"sSearch": "搜索",
"sUrl": "",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页 ",
"sNext": " 下页 ",
"sLast": "尾页 "
},
"oAria": {
"sSortAscending": "以升序排列此列",
"sSortDescending": "以降序排列此列"
}
}
DataTables 汉化
ASP.NET MVC 5 ABP DataTables (一)的更多相关文章
- ASP.NET MVC 5 ABP DataTables (二)
1)ABP DataTables 应用(一) 2) ABP DataTables 应用(二) JS DataTables 这个组件绑定数据必须要有自己的返回数据格式.但是ABP返回的格式直接绑定是错 ...
- 基于ASP.NET MVC的ABP框架入门学习教程
为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加, ...
- Datatables 在asp.net mvc中的使用
前言 最近使用ABP(ASP.NET Boilerplate)做新项目,以前都是自己扩展一个HtmlHelper来完成同步/异步分页,但是有个地方一直不满意,排序太费劲. 以前接触过一点点的Datat ...
- Datatables 在asp.net mvc
Datatables 在asp.net mvc中的使用 前言 最近使用ABP(ASP.NET Boilerplate)做新项目,以前都是自己扩展一个HtmlHelper来完成同步/异步分页,但是有个地 ...
- [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序
本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
引言: 本人想自己个博客网站出来,技术路线是用ASN.NET MVC5+EF6(Code First)+ZUI+各种Jquery插件,有了这个想法之后就开始选择UI,看了好多bootstrap的模板之 ...
- jQuery DataTables and ASP.NET MVC Integration
part 1 : http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Pa ...
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/ 谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...
- ABP示例程序-使用AngularJs,ASP.NET MVC,Web API和EntityFramework创建N层的单页面Web应用
本片文章翻译自ABP在CodeProject上的一个简单示例程序,网站上的程序是用ABP之前的版本创建的,模板创建界面及工程文档有所改变,本文基于最新的模板创建.通过这个简单的示例可以对ABP有个更深 ...
随机推荐
- NYoj_49开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他 ...
- c语言变量类型联想
int float char *(指针) 已经定义:单个变量 单个相同类型在内存中顺序存放:数组 不同单个类型在内存中顺序存放:结构体 不同类型在内存中自由存放:链表 其中结构体与链表类型需运用时提前 ...
- 一 : springmvc常用注解
springmvc常用注解详解1.@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层 ...
- 对SVD奇异值分解的理解
首先推荐一篇博客,奇异值分解(SVD)原理详解及推导 - CSDN博客,讲解的很清楚.这里我谈谈自己的理解,方便以后回顾. 如果把向量理解为空间中的一个元素,那么矩阵可以理解为两个空间上的映射 ...
- 浏览器与CDN缓存行为
@地址栏回车 1. 未过期: 浏览器拦截,直接返回: (expires/cache-control两个参数决定,如果两个参数都有,cache-control覆盖expires); 2. 已过期: et ...
- Spark_总结七_troubleshooting
转载标明出处 http://www.cnblogs.com/haozhengfei/p/07ef4bda071b1519f404f26503fcba44.html Spark_总结七_troubles ...
- [随笔] 简单操作解决Google chrome颜色显示不正常的情况
最近在用Linuxmint 真的是极友好的桌面Linux啊,然后用最新的Linuxmint自带的Firefox浏览器上网,发现颜色都变成了红色黄色变绿色,以为是显卡的问题,搞了一阵,无果.果断换Goo ...
- windows下如何创建没有名字的.htaccess文件
http://www.mdaima.com/jingyan/35.html WINDOWS下建立空名的.htaccess文件 ? 大家都知道,在windows环境下是不能直接建立没有名字的文件的,那我 ...
- 你知道织梦后台安装插件时为什么会出现这个Character postion 686, 'item'&n
https://zhidao.baidu.com/question/589525064.html?qbl=relate_question_3&word=Tag Character postio ...
- IOS开发之纯代码界面--基本控件使用篇 ┊
http://www.cocoachina.com/bbs/read.php?tid=131516