Wijmo5 Flexgrid基础教程(四)【合并单元格,合并单元格文字样式】

Wijmo5flexgrid支持合并单元格,这个时候需要设置allowMerging属性为wijmo.grid.AllowMerging.All。然后对于需要合并的列,设置allowMergingtrue。代码参考:

columns: [
{ header: 'id', binding: 'id', width: 50, isReadOnly: true, allowMerging: true },
{ header: 'country', binding: 'country', width: 100, allowMerging: true },

],

这样时候,就会实现自动的合并单元格内容。对于合并单元格,选择的时候依然不会直接选择所有合并的行。如果想要实现这个功能,需要实现两点。
1. 设置selectionMode

通过修改selectionModewijmo.grid.SelectionMode.RowRange,能够选择多行。

2. 在selectionChanged事件里多选

判断选择的是单个单元格,还是合并单元格,从而通过select方法改变选择的范围。代码参考:

if (grid.getMergedRange(e.panel, e.row, e.col) != null) {
if (grid.getMergedRange(e.panel, e.row, e.col).isSingleCell == false) {
grid.select(grid.getMergedRange(e.panel, e.row, e.col), true);
}
}
});

这时就能实现合并单元格,以及合并单元格的行选。


在上文中,我们已经介绍如何合并单元格,本文就在上文的基础上介绍如何更改合并单元格的样式。对于单元格的样式,我们之前介绍过通过itemFormatter就可以设置,合并单元格的样式,也可以通过它来设置。用户需要通过getMergeRange方法判断是否是合并单元格,然后对于合并单元格修改样式。

样式中比如,文字居中。文字水平的位置通过style.textAlign属性设置居中,文字竖直居中通过css样式来设置。总得来说,代码参考如下:

itemFormatter: function (panel, r, c, cell) {
// validate CellType and if merge cell
if (wijmo.grid.CellType.Cell == panel.cellType
) {
var range = panel.grid.getMergedRange(panel, r, c);
if (range) {
cell.style.textAlign = 'center';
cell.innerHTML = '<div>' + cell.innerHTML + '</div>';

wijmo.setCss(cell.children[0], {
position: 'relative',
top: '50%',
transform: 'translateY(-50%)'
});
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值