Jquery datatable 配置与应用
var EcommerceOrders = function() { var initPickers = function() {
//init date pickers
$('.date-picker').datepicker({
rtl: App.isRTL(),
autoclose: true
});
} var handleOrders = function() { var grid = new Datatable();
grid.init({
src: $("#datatable_orders"),
onSuccess: function(grid) {
// execute some code after table records loaded
},
onError: function(grid) {
// execute some code on network or other general error
},
dataTable: {// here you can define a typical datatable settings from http://datatables.net/usage/options
//"sDom": '<"top"i>rt<"bottom"flp><"clear">', //显示布局
"aLengthMenu": [
[20, 50, 100, 150, -1],
[20, 50, 100, 150, "All"] //["每页10条", "每页25条", "每页50条", "显示所有数据", "不显示数据"]],//设置每页显示记录的下拉菜单
],
"iDisplayLength": 2, // default record count per page
// "iCookieDuration":7200, //指定用于存储客户端信息到cookie中的时间长度,超过这个时间后,自动过期
"bProcessing": true,
"bServerSide": true, //是否启动服务器端数据导入,即要和sAjaxSource结合使用
//"bLengthChange":false,//改变每页显示数据数量
//"bPaginate": false, //翻页功能
"bFilter":true, //全文过滤开关,过滤功能
//"bSort": false, //排序功能
//"bInfo": false //页脚信息
//"bAutoWidth": true, //自动宽度
//"bStateSave": true, //保存当前页面信息为cookie,默认关闭
//"bScrollCollapse": false, ////当显示的数据不足以支撑表格的默认的高度时,依然显示纵向的滚动条。(默认是false)
// "bJQueryUI": true, /*是否开启主题*/ "sAjaxSource": "test/dataProvider", // ajax source
// "sPaginationType": "full_numbers", //修改默认分页显示样式
// "sScrollX": "100%",//表格的宽度
// "sScrollXInner": "100%", //表格的内容宽度
// "sScrollY": "200px",
// "sUrl": "media/language/de_DE.txt" ,//也可以直接指定语言包,文件格式和上面一样
//"sServerMethod": "GET", //传递方式
"oLanguage": {
"sLengthMenu": "每页显示 _MENU_条",
"sZeroRecords": "没有找到符合条件的数据",
"sProcessing": "<img src=’./loading.gif’ />",
"sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",
"sInfoEmpty": "木有记录",
"sInfoFiltered": "(从 _MAX_ 条记录中过滤)",
"sSearch": "搜索:",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
},
// "oSearch":{"sSearch":"keyword1 keyword2 keyword3","bRegex":true},
// "asStripClasses": ['odd', 'even'], //指定要被应用到各行的class风格,会自动循环
"aaSorting": [[1, "asc"]] ,// //给列表排序 ,第一个参数表示数组 (由0开始)。1 表示Browser列。第二个参数为 desc或是asc
// "aoColumnDefs": [
// {"bSearchable": false, "bSort": false,"bVisible": true, "aTargets": [1]}, //bSearchable:是否可搜索;bVisible:是否可见;aTargets:哪一列
// {"bVisible": true, "aTargets": [2]}//
// ],
"aoColumnDefs": [{
"sClass": "center",
"aTargets": ['_all']
}, {
"bSearchable": false,
"aTargets": [0, 1,2]//['_all']
}, {
"bSortable": false, //指定不支持排序的列
"aTargets": ['_all']//['_all']
}, {
"sWidth": "5%", //指定列宽
"aTargets": [0, 1]//['_all']
}], // "aoSearchCols": [
// null,
// {"sSearch": "keyword", "bRegex": true},
// null,
// {"sSearch": "keyword2", "bRegex": false}
// ], // "aoColumns": [
// {"sClass": "center", "sName": "Id"},
// {"sClass": "center", "sName": "Title1"},
// {"sClass": "center", "sName": "CategoryId"},
// {"sClass": "center", "sName": "Click"}
// ],
}
}); // handle group actionsubmit button click
grid.getTableWrapper().on('click', '.table-group-action-submit', function(e) {
e.preventDefault();
var action = $(".table-group-action-input", grid.getTableWrapper());
if (action.val() != "" && grid.getSelectedRowsCount() > 0) {
grid.addAjaxParam("sAction", "group_action");
grid.addAjaxParam("sGroupActionName", action.val());
var records = grid.getSelectedRows();
for (var i in records) {
grid.addAjaxParam(records[i]["name"], records[i]["value"]);
}
grid.getDataTable().fnDraw();
grid.clearAjaxParams();
} else if (action.val() == "") {
App.alert({type: 'danger', icon: 'warning', message: 'Please select an action', container: grid.getTableWrapper(), place: 'prepend'});
} else if (grid.getSelectedRowsCount() === 0) {
App.alert({type: 'danger', icon: 'warning', message: 'No record selected', container: grid.getTableWrapper(), place: 'prepend'});
}
}); //用于每一列搜索过滤
// var asInitVals = new Array();
// $(".filter input").keyup(function() {
// grid.fnFilter(this.value, $(".filter input").index(this));
// });
// $(".filter input").each(function(i) {
// asInitVals[i] = this.value;
// });
// $(".filter input").focus(function() {
// if (this.className == "search_init")
// {
// this.className = "";
// this.value = "";
// }
// });
// $(".filter input").blur(function(i) {
// if (this.value == "")
// {
// this.className = "search_init";
// this.value = asInitVals[$(".filter input").index(this)];
// }
// }); } return {
//main function to initiate the module
init: function() { initPickers();
handleOrders();
} }; }();
<div class="portlet-body">
<div class="table-container">
<table class="table table-striped table-bordered table-hover" id="datatable_orders">
<thead>
<tr role="row" class="heading">
<th >
<input type="checkbox" class="group-checkable">
</th>
<th width="5%">
Order #
</th>
<th width="15%">
Purchased On
</th>
<th width="10%">
Actions
</th>
</tr>
<tr role="row" class="filter">
<td>
</td>
<td>
<input type="text" class="form-control form-filter input-sm" name="order_id" class="search_init" >
</td>
<td>
<input type="text" class="form-control form-filter input-sm" name="order" >
</td>
<td>
<div class="margin-bottom-5">
<button class="btn btn-sm yellow filter-submit margin-bottom"><i class="fa fa-search"></i> Search</button>
</div>
<button class="btn btn-sm red filter-cancel"><i class="fa fa-times"></i> Reset</button>
</td>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>
</div>
</div>
public function actionDataProvider() {
$data = array();
$connect = Post::model()->getDbConnection()->createCommand();
$limit = isset($_REQUEST['iDisplayLength']) ? $_REQUEST['iDisplayLength']:2;
$offset = isset($_REQUEST['iDisplayStart']) ? $_REQUEST['iDisplayStart']:0;
$list = $connect->select('*')->from( Post::model()->tableName())->limit($limit, $offset)->queryAll();
$count = 5;
foreach ($list as $key => $val) {
$row = array();
$row[0] = "<input type=\"checkbox\" name=\"id[]\" value=\"1\">";
$row[1] = $val['title'];
$row[2] = $val['content'];
$row[3] = "<a href=\"ecommerce_orders_view.html\" class=\"btn btn-xs default btn-editable\"><i class=\"fa fa-search\"><\/i> View<\/a>";
$data[] = $row;
}
$json = new stdClass();
$json->aaData = $data;
$json->sEcho = $_REQUEST['sEcho'];
$json->iTotalRecords = $count;
$json->iTotalDisplayRecords = $count;
die(json_encode($json));
}
Jquery datatable 配置与应用的更多相关文章
- JQuery Datatable用法
原文出处:http://sgyyz.blog.51cto.com/5069360/1408251 目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求 ...
- jQuery Datatable 转载
jQuery Datatable 实用简单实例 时间 2014-05-08 10:44:18 51CTO推荐博文 原文 http://sgyyz.blog.51cto.com/5069360/14 ...
- 使用jquery.datatable.js注意事项
本文链接:https://blog.csdn.net/ylg01/article/details/76463908写在最前面的话,如果不是维护老项目或者在老项目上二次开发尽量不要用这个表格插件 为什么 ...
- jquery datatable使用简单示例
目标: 使用 jQuery Datatable 构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求.同时, jQuery Datatable 强大的功能支持:排序,分页,搜索等. Query ...
- jquery dataTable汉化(插件形式)
1.jquery dataTable.js 官网:http://datatables.net/ 中文:http://dt.thxopen.com/ 2.汉化提示信息(放到xx.js中,引入即可) 注: ...
- JQuery Datatable Ajax请求两次问题的解决
最近一个项目中使用JQuery Datatable,用起来比较方便,但在测试过程中,发现当条件改变时,有时查询结果中的数据不正确. 使用FireBug跟踪时,发现在使用Ajax请求时,点击一次搜索按钮 ...
- 分享在MVC3.0中使用jQuery DataTable 插件
前不久在网络上看见一个很不错的jQuery的DataTable表格插件.后来发现在MVC中使用该插件的文章并不多.本文将介绍在MVC3.0如何使用该插件.在介绍该插件之前先简单介绍一下,推荐该插件的原 ...
- jQuery DataTable 删除数据后重新加载
问题描述: 利用jQuery Datatable和artTemplate组合来做的表格.但是当删除数据时,需要重新加载table里的数据.但是问题是datatable并没有直接的重新渲染,反而给数据累 ...
- JQuery DataTable的配置项及事件
当我们需要在加载或者显示表格的时候,改变jquery datatable 的数据,或增加一些html标签处理. 可以通过Jquery DataTable的回调函数处理. 实例代码: if (oTabl ...
随机推荐
- web css
CSS圆角——透明圆角化背景图片 序言:第一章中我介绍了最基本的纯CSS圆角框的实现原理,并给出Demo,在本章中会对上一个模型作一些新的创新,实现将背景图片透明圆角化.并给出一些漂亮的通用演示效果. ...
- js请求解析xml
xml数据 <?xml version="1.0" encoding="utf-8"?> <table> <node name=& ...
- [CSP-S模拟测试]:Travel(贪心+构造)
题目描述 给定一个长度为$n$的格子序列$x_1,x_2,...,x_n$.每一次$Lyra$可以选择向左跳到任意一个还没到过的位置,也可以向右跳到任意一个还没到过的位置.如果现在$Lyra$在格子$ ...
- (转)利用VMware克隆虚拟机需要注意的问题
第一步:关闭当前机器 第二步:在VMware中右键要克隆的机器 选择管理-->克隆 第三步:启动新克隆的虚拟机 修改主机名 如 hostname slave2 第四步:修改克隆的虚拟机的ip地 ...
- (转)Kubernetes 配置Pod和容器(十七) 使用Secrets管理安全证书
转:https://www.jianshu.com/p/530b3642c642 本章节展示了如何把密码秘钥等敏感数据安全的注入到Pod里面. 转换安全数据成base-64表示 假设你有两个秘密数据: ...
- codecs模块, decode、encode
使用codecs模块,在Python中完成字符编码 字符的编码是按照某种规则在单字节字符和多字节字符之间进行转换的某种方法.从单字节到多字节叫做decoding,从多字节到单字节叫做encodin ...
- javascript-object对象属性操作之Object.defineProperty
一.基本用法简介 声明一个简单的对象,如下 var obj = { name: 'ldld' } 我们可以用Object.defineProperty来声明这个对象 var obj = {} Obje ...
- Python web自动化测试框架搭建(功能&接口)——unittest介绍
Python UnitTest测试框架介绍 1) TestCase:所有测试用例类继承的基本类, TestCase的实例就是测试用例 2) TestSuite:测试套件 ...
- 阅读笔记05-架构师必备最全SQL优化方案(1)
一.优化的哲学 1.优化可能带来的问题? 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统: 优化手段本来就有很大的风险,只不过你没能力意识到和预见到: 任何的技术可以解决一个问题,但 ...
- 状压DP : [USACO06NOV]玉米田
玉米田 内存限制:128 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ ...