프로그래밍/Javascript
J query :: DataTable
즐겁게 하하하
2022. 5. 30. 17:07
728x90
//main :: 메인 리스트
function dataTablePageGo(){
$('#page_loading').show();
// main :: 고객사 현황 목록 list
table_custSum = $('#custSumTable').DataTable( {
"processing": true,
"serverSide": true,
"ordering" : false,
"scrollX": true,
"scrollCollapse": true,
"fixedColumns" : {
left: 2,
right: 0
},
//"order": [[1, 'desc']],
"ajax": {
type : "POST",
dataType : "json",
url: "<c:url value='/cust/custSumList.do'/>",
data: function(param) {
param.searchField = $('#searchField').val();
param.searchValue = $('#searchValue').val();
param.fnTreePage = $('#fn_tree_page').val(); // layout_west
// 선택된 항목
param.searchYear = $('#searchYear option:selected').val();
param.searchPrd = $('#searchPrd').val();
},
dataSrc: function(json){
//totalCnt=json.recordsTotal;
//console.log(json.data);
if( Number(json.data.length) > 0 ){
sumTableFooter( json.data );
}
return json.data;
},
error : function(request, status, error) {
console.log("error:"+error);
}
},
// 데이터 로딩완료
"drawCallback": function( settings ) {
// 전체선택 해제
// $('#select-all').iCheck('uncheck');
$('#page_loading').hide();
},
"initComplete": function(settings, json) {
},
"columns": [
{ "data": "cust_nm", "title":"고객사", "className": "col_center" , "orderable": false },
{ "data": "prd_nm", "title":"제품", "className": "col_center" , "orderable": false },
{ "data": "month1", "title":"1월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month2", "title":"2월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month3", "title":"3월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month4", "title":"4월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month5", "title":"5월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month6", "title":"6월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month7", "title":"7월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month8", "title":"8월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month9", "title":"9월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month10", "title":"10월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month11", "title":"11월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
{ "data": "month12", "title":"12월", "className": "col_center" , "orderable": false ,
"render": function(data, type, row, meta){
if(data == 0) return "";
else return viewFloat(data);
}
},
],
"createdRow": function(row, data, dataIndex) {
// 에러가 있는 경우는 붉은색으로 표시함
if(0 < data.search_result) {
$(row).css("background-color", "#FBE3E3");
}
},
"lengthMenu": [[15, 30, 50, 100, 1000],[15, 30, 50, 100, 1000]],
"pageLength": 15,
"dom": '<"dt_export_div"tilpB>',
"buttons":[{
extend:'csvHtml5',
exportOptions: {
columns: [ 0, 1, 2, 3, 4, 5, 6]
},
text: ' ',
footer: true,
bom: true,
className: 'exportCSV',
"action": newexportaction
}]
}).clear().draw();
// main :: datatable 위치 설정
$("#custSalesPriceSumTable_wrapper").css('display','block');
$("#custSalesPriceSumTable").css('width', '100%')
$("#custSalesPriceSumTable").css('display', '')
$("#custSalesPriceSumTable_length").css('float','left');
$("#custSalesPriceSumTable_paginate").css('float','right');
/**
* DATA Table Content
*/
//[15, 30, 50, 100, 1000] 변경시 처리
$("select[name='custSalesPriceSumTable_length']").on("change",function(){
$('#page_loading').show();
});
//페이징 변경시 처리.
$('#custSalesPriceSumTable').on( 'page.dt', function (){
$('#page_loading').show();
});
}
//합계 계산 > tr > append
function sumTableFooter( json_data ){
$.ajax({
type : "POST",
async : false,
url : "<c:url value='/cust/custTotalSum.do'/>",
dataType : "json",
data : {
"searchField" : $('#searchField').val(),
"searchValue" : $('#searchValue').val(),
"fnTreePage" : $('#fn_tree_page').val(), // layout_west
"searchYear" : $('#searchYear option:selected').val(),
"searchPrd" : $('#searchPrd').val()
},
timeout : 30000,
error : function(request, status, error) {
console.log("error:"+error);
},
success : function(data) {
json_data.push({
cust_nm: "합계",
prd_id: "",
prd_nm: "",
month1: data.data.month1,
month2: data.data.month2,
month3: data.data.month3,
month4: data.data.month4,
month5: data.data.month5,
month6: data.data.month6,
month7: data.data.month7,
month8: data.data.month8,
month9: data.data.month9,
month10: data.data.month10,
month11: data.data.month11,
month12: data.data.month12,
total_cnt:json_data.length
});
}
});
return json_data;
}
728x90