Add a total to the last row of the easyui datagrid table

1.

$.extend($.fn.datagrid.methods, {
	    statistics: function(jq) {
	        var opt = $(jq).datagrid('options').columns;
	        var rows = $(jq).datagrid("getRows");
	        var footer = new Array();
	        footer['sum'] = "";
	        for (var i = 0; i < opt[0].length; i++) {
	            if (opt[0][i].sum) {
	                footer['sum'] = footer['sum'] + sum(opt[0][i].field, 1) + ',';
	            }
	        }
	        var footerObj = new Array();
	        if (footer['sum'] != "") {
	            var tmp = '{' + footer['sum'].substring(0, footer['sum'].length - 1) + "}";
	            var obj = eval('(' + tmp + ')');
	            if (obj[opt[0][0].field] == undefined) {
	                footer['sum'] += '"' + opt[0][0].field + '":"<b>Total:</b>"';//Column 0 is displayed as total
	                obj = eval('({' + footer['sum'] + '})');
	            } else {
	                obj[opt[0][0].field] = "<b>合计:</b>" + obj[opt[0][0].field];
	            }
	            footerObj.push(obj);
	        }
	        if (footerObj.length > 0) {
	            $(jq).datagrid('reloadFooter', footerObj);
	        }
	        function sum(filed) {
	            var sumNum = 0;
	            var str = "";
	            for (var i = 0; i < rows.length; i++) {
	                var num = rows[i][filed];
	                sumNum += Number(num);
	            }
	            return '"' + filed + '":"' + sumNum.toFixed(2) + '"';
	        }
	    }
	});

  

  /* product list */
    var posid = {$data.posid};
	objs.datagrid = $("#datagrid").datagrid({
		url : CONFIG.getGoodsListurl,
		toolbar : '#toolbar',
		fit : true,
		border : false,
		striped : true,
		loadMsg : 'Loading data, please wait...',
		rownumbers : true,
		singleSelect:true,
		pagination:false,
		pageSize:20,
		showFooter:true,  
		onClickRow: onClickRow,
		columns : [CONFIG.COLUMNS],
	 	queryParams: {
			posid: posid
		},
		onLoadSuccess:function (data){
			$('#datagrid').datagrid('statistics');
			$(this).datagrid('unselectAll');
			$(this).datagrid('selectRow',0);
		}
	});
	

  

CONFIG.COLUMNS = [{
	field : 'code',
	title : '{:L("Item number")}',
	width : 100,
	align : 'right'
},{
	field : 'mgname',
	title : '{:L("Product name")}',
	width : 180
},{
	field: 'specname',
	title : '{:L("Specification")}',
	width : 150,
},{
	field : 'mgtname',
	title : '{:L("Classification")}',
	width : 170,
},{
	field : 'dhprice',
	title : '{:L("Unit Price")}',
	width : 100,
	align : 'right'
},{
	field : 'goodsno',
	title : '{:L("Order Quantity")}',
	width : 120,
	sum   : true,
	align : 'right'
},{
	field : 'qgoodsno',
	title : '{:L("Delivery Quantity")}',
	width : 100,
	editor:{
		type:'numberbox',
		options:{
			max:999999.99,
			precision:2,
			min: 0
		}
	}
},{
	field : 'dhunit',
	title : '{:L("In-out unit")}',
	width : 120
},{
	field : 'tprice',
	title : '{:L("小计")}',
	width : 120,
	sum   : true,
	align : 'right'
},{
	field : 'remarks',
	title : '{:L("Note")}',
	width : 150,
}];

  

/* enable editable table */
	var editIndex = undefined;
	function onClickRow(index){
		if (editIndex == index)return false;
		if (endEditing()){
			objs.datagrid.datagrid('selectRow', index).datagrid('beginEdit', index);
			editIndex = index;
		} else {
			objs.datagrid.datagrid('selectRow', editIndex);
		}
	}
	
	/* Done editable */
	function endEditing(){
		if(editIndex == undefined){return true;}
		if(objs.datagrid.datagrid('validateRow', editIndex)){
			objs.datagrid.datagrid('endEdit', editIndex);
			editIndex = undefined;
			return true;
		}else {
			return false;
		}
	}

  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324537891&siteId=291194637