找回密码
 立即注册

QQ登录

只需一步,快速开始

KevinChen 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-30 18:22  /   查看:3051  /  回复:0
列头自适应是一个常见的需求,在FlexGrid中,默认情况下,
列头高度是固定的。很多同学都被这个功能所困扰,用了一些
特别复杂和不友好的方式尝试实现它(譬如直接操作列头DOM之类)

实际上,多查API是个好习惯,在这个场景下,用一个简单的“单元格模板”
就可以非常轻松实现这个功能 —— itemFormatter,
参考API地址:
https://demo.grapecity.com.cn/wijmo/api/classes/wijmo_grid.flexgrid.html#itemformatter

API是纯英文的,我这里做个很简单的解释:

Gets or sets a formatter function used to customize cells on this grid.
—— 获取或设置一个格式方法,用以自定制单元格cell的样式


因此,我们可以把能够自适应高度的DOM,通过这个方法轻松“植入”到
列头上,实现自适应列头高度的功能。自适应高度DOM的实现网上可以搜到几十种,
这里提供一种实现:
  1. flex1.itemFormatter = function (panel,r,c,cell) {
  2.         if (wijmo.grid.CellType.Cell == panel.cellType && c!==1 && !panel.grid.editRange) {
  3.                 cell.innerHTML = '<div>' + cell.innerHTML + '</div>';
  4.                 wijmo.setCss(cell, {
  5.                         display: 'table',
  6.                         tableLayout: 'fixed'
  7.                 });
  8.                 var ch = cell.children[0];
  9.                 wijmo.setCss(ch, {
  10.                         display: 'table-cell',
  11.                         verticalAlign: 'middle',
  12.                         textAlign: 'center'
  13.                 });
  14.         }
  15. }
复制代码


完整示例参考附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部