UltraWebGrid根据单元格文字长度自适应列宽

function textSize(fontSize, text) { var span = document.createElement("span"); var result = {}; result.width = span.offsetWidth; result.height = span.offsetWidth; span.style.fontSize = fontSize span.style.visibility = "hidden"; document.body.appendChild(span); if (typeof span.textContent != "undefined") span.textContent = text; else span.innerText = text; result.width = span.offsetWidth - result.width; result.height = span.offsetHeight - result.height; span.parentNode.removeChild(span); return result; }

首先上面是一个根据字号来算出一串文本宽度的函数,UltraWebGrid默认的Font-Size 是8.25pt,另外还有left padding 3的偏移,算的时候加上3,效果不明显,所以加了5,至于字号大家可以自己设置的,函数里自己替换就可以了,下面是具体的设置列宽的函数了(为UltraWebGrid初始化函数),思路是这样的,找出该列中最长的文本宽度加上5个像素的偏移量,然后再设置成该列的宽度:)

function Grid_InitializeLayoutHandler(gridName) { var grid = igtbl_getGridById(gridName); var columnCount = grid.Bands[0].Columns.length; var rowCount = grid.Rows.length; if (grid && row) { for (var i = 1; i < columnCount; i++) { for (var j = 0; j < rowCount; j++) { var cellValue = grid.Rows.getRow(j).getCell(i).getValue(); var getWidth = textSize("8.25pt", cellValue).width; if (!cellValue) continue; var colWidth = 0; if (getWidth) { if (getWidth > colWidth) colWidth = getWidth; } grid.Bands[0].Columns[i].setWidth(colWidth + 5); } } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值