Jquery Datatable (bootstrap -框架)


//首先,添加datatable控件的引用。
<link href="~/Content/BootStrap/frontmcoinquery/bootstrap-table.css" rel="stylesheet" />
<script src="~/Content/BootStrap/frontmcoinquery/bootstrap-table.js"></script>
<script src="~/Content/BootStrap/frontmcoinquery/bootstrap-table-zh-CN.js"></script>



//页面加载时 初始化 datatable

1
function loadEleList( ) { 2 var table = $("#dtEleList").dataTable( 3 { 4 "bProcessing" : true, 5 "aLengthMenu" : [ 10, 15, 100 ], 6 "iDisplayLength" : 10, 7 "bPaginate": true, 8 "bServerSide" : true, 9 "iCookieDuration": 0, 10 "bScrollAutoCss": true, 11 /* "sScrollX": "100%", 12 "sScrollXInner": "110%", 13 "bScrollCollapse": true, */ 14 "bDestroy" : true, 15 "bAutoWidth" : false, 16 "bFilter" : false,// 搜索栏 17 "bStateSave" : false,//状态保存,使用了翻页或者改变了每页显示数据数量,会保存在cookie中,下回访问时会显示上一次关闭页面时的内容 18 "sPaginationType" : 'full_numbers', // default 'two_button' //分页显示 数字或者上下页按钮 19 "sAjaxSource" : "${ctx}/contract/eleMntlistData“, // 访问后台的控制层 返回json 数据 绑定到datatable 20 "aaSorting" : [ [ 2, "desc" ] ], //索引从0开始 21 "aoColumns" : [ { 22 "mDataProp" : 'id', 23 bSortable : false, 24 "mRender" : function(data, type, row) { 25 var conid=row.conid 26 return '<input type="checkbox" value="'+ row.id+ '" id="'+ row.id+ '" > '; 27 } 28 },{ 29 "mDataProp" : 'equRegCode', 30 bSortable : false 31 }, 32 { 33 "mDataProp" : 'name', 34 "bVisible": false, 35 "mRender": function ( data, type, row ) { /*type="text"*/ 36 return '<input type="hidden" class="orgName" value="'+row.name+'"/>'; 37 } , 38 bSortable : false 39 }, 40 { 41 "mDataProp" : 'contractId', 42 bSortable : false 43 }, { 44 "mDataProp" : 'contractName', 45 bSortable : false 46 },{ 47 "mDataProp" : "id", 48 "mRender" : function(data, type, row) { 49 var str =""; 50 if(row.contractId !=null){ 51 str = "<button onclick=\"deleteCont('"+row.conequid+"')\" class='btn btn-warning btn-sm' type='button'> 删除 </button>"; 52 }else{ 53 str = "<button class='btn btn-default btn-sm' type='button' disabled=''> 删除 </button>"; 54 } 55 return str; 56 }, 57 bSortable : false 58 } ], 59 "fnRowCallback" : function(nRow, aData, iDisplayIndex) { 60 $('td:eq(0)', nRow).attr('style','text-align: center;'); 61 $('th:eq(0)').attr('style','text-align: center;'); 62 $(nRow).on("click",function(){ 63 var nclass = iDisplayIndex%2==1?"even":"odd"; 64 65 if ($(nRow).attr("class")==nclass) { 66 $(nRow).removeClass(nclass); 67 $(nRow).addClass("alert-warning"); 68 $(nRow).find("input[type='checkbox']").each(function() { 69 this.checked = true; 70 var eleId = $("#eleId").val() 71 if (eleId=="") { 72 $("#eleId").val(this.value); 73 }else{ 74 $("#eleId").val(eleId+","+this.value); 75 } 76 }); 77 }else{ 78 $(nRow).removeClass("alert-warning"); 79 $(nRow).addClass(nclass); 80 $(nRow).find("input[type='checkbox']").each(function() { 81 this.checked = false; 82 var eleId = $("#eleId").val(); 83 var eleIds = eleId.split(","); 84 for (var i = 0; i < eleIds.length; i++) { 85 if (this.value==eleIds[i]) { 86 eleIds.splice(i,1); 87 } 88 89 } 90 $("#eleId").val(eleIds.join(",")) 91 }); 92 } 93 94 }) 95 96 }, 97 "fnDrawCallback" : function(oSettings) { 98 var eleId = $("#eleId").val(); 99 var eleIds = eleId.split(","); 100 for (var i = 0; i < eleIds.length; i++) { 101 var id = eleIds[i]; 102 $("#" + id + "").attr("checked", ""); 103 $("#"+id+"").parent().parent().attr("class","alert-warning") 104 } 105 if ($(":checkbox:checked").length==1) { 106 $("input[type='checkbox']").each(function() { 107 this.checked = false; 108 }); 109 } else if($(":checkbox:checked").length>1){ 110 $("#allSelect").prop("checked",true); 111 } 112 deletehandle(); 113 }, 114 }); 115 }

 

 

1 以上部分是 jquery  datatable的数据绑定 , 数据格式是后台传回来的 带分页的json 格式

 

 2 这部分是 表格的checkbox 全选和取消全选

 1 var selectIds = [];  先定义一个数组 用来存储保存的选中的checkbox的id 
 2 //var isCheckAll = false;
 3 function swapCheck(obj) {
 4 var isCheckAll = obj.checked;
 5 if (isCheckAll==false) {
 6 var idstr = $("#eleId").val();
 7 var idss = idstr.split(",");
 8 $("input[type='checkbox']").each(function() {
 9 this.checked = false;
10 var trs=$("table#dtEleList tr"); 
11 var index=trs.index($(this).parent().parent().closest("tr")); 
12 if (index>0) {
13 $(this).parent().parent().attr("class",(index%2==1?"odd":"even"));
14 }
15 var no = $.inArray(this.value, idss);
16 if (no != -1) {
17 idss.splice(no, 1);
18 } 
19 var no1 = $.inArray(this.value, selectIds);
20 if (no1 != -1) {
21 selectIds.splice(no1, 1);
22 }
23 
24 
25 });
26 $("#eleId").val(idss.join(",")) 
27 //isCheckAll = false;
28 } else if(isCheckAll==true){
29 
30 $("input[type='checkbox']").each(function() {
31 this.checked = true;
32 if (isNull($(this).parent().parent().attr("class"))!="") {
33 $(this).parent().parent().attr("class","alert-warning");
34 }
35 var index = $.inArray(this.value, selectIds);
36 ;
37 if (index == -1) {
38 selectIds.push(this.value)
39 }
40 });
41 //$("#eleId").val("");
42 var id = selectIds.join(",")
43 if (id.startsWith(",")) {
44 id = id.substring(1, id.length + 1);
45 }
46 if (id.endsWith(",")) {
47 id = id.substring(0, id.length);
48 }
49 $("#eleId").val(id)
50 //isCheckAll = true;
51 }
52 }

 

 

 

 

以下是html 代码部分 主要是设置表格的标题

 1 <div class="ibox float-e-margins">
 2 
 3 <input type="hidden" id="eleId">
 4 <div class="ibox-title">
 5 <h5>电梯信息</h5>
 6 </div>
 7 
 8 <div class="ibox-content" style="padding-bottom: 50px">
 9 <div id="mntEleListTable" style="overflow: hidden;overflow-x:auto;">
10 <table cellpadding="0" cellspacing="0" border="0" id="dtEleList"
11 style="width: 100%;table-layout:fixed;overflow :auto" >
12 <thead>
13 <tr>
14 <th width="5%" style="text-align: center;"><input
15 type="checkbox" value="" onclick="swapCheck(this)" id="allSelect"/></th> 
16 <th style="width: 15%;">设备注册代码</th>
17 <th style="width: 25%; display:none;">使用单位名称</th>
18 <th style="width: 20%;">合同编号</th>
19 <th style="width: 20%;">合同名称</th>
20 <th style="width: 8%;">操作</th>
21 </tr>
22 </thead>
23 <tbody></tbody>
24 </table>
25 </div>
26 </div>
27 </div>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM