easyui grid下做一个合计怎么做
时间: 2024-11-04 08:22:06 浏览: 1
在EasyUI Grid中添加行总计(Totals Row),通常用于对某些列的数据进行求和、平均值等计算。以下是步骤:
1. **配置Grid**:
首先,在创建Grid时,设置`fitColumnWidth: false`,以便于自定义合计行的样式。
```html
<link rel="stylesheet" href="easyui.css">
<script src="jquery.min.js"></script>
<script src="jquery.easyui.min.js"></script>
<div id="grid" style="width:800px;height:400px;"></div>
```
2. **数据准备**:
数据需要包含原始数据和额外的总计列数据,例如每个组的总计值。
```javascript
var data = ...; // 假设data是一个包含原始数据的对象数组
// 添加总计列的数据
var totalsData = [
{ field: 'total', title: '总计', formatter: function(value, row) {
return calculateTotalForRow(row); // 这里是一个函数来计算某一行的总计
}}
];
```
3. **初始化Grid**:
初始化Grid,并将数据和总计列合并。
```javascript
var columns = [...data[0].keys()].concat(totalsData.map(function(col) { return col.field; }));
$('#grid').datagrid({
url: ..., // 根据实际情况填写数据源
columns: columns,
fitColumns: false,
totalRows: true, // 开启总行功能
loadMsg: '正在加载...',
sortName: 'index',
sortOrder: 'asc',
data: data
});
```
4. **计算函数**:
`calculateTotalForRow`函数可以根据你的需求计算行的总计,比如简单求和:
```javascript
function calculateTotalForRow(row) {
var sum = 0;
for (var key in row) {
if (key !== 'total') { // 不包括总计字段
sum += Number(row[key]); // 将数值转成Number类型再相加
}
}
return sum;
}
```
5. **美化合计行**:
如果需要调整合计行的样式,可以使用EasyUI提供的CSS规则或者自定义模板。
现在,Grid应该会自动显示一行作为总计行,显示各列的总计值了。
阅读全文