我正在使用SlickGrid,并且很难找到一个优雅的解决方案来解决以下问题:
我见过:
Make one column fill remaining space in SlickGrid without messing up explicit width columns
resizing of grid when resizing browser window
How do I autosize the column in SlickGrid?
但这些似乎不能完全满足我的需要。如果我使用forceFitColumns选项,那么所有列都将自动调整大小(除非我在它们上设置了maxsize )。在resizeCanvas上使用window.resize很好--但只有当forceFitColumns是真的时候,它才能起作用。
如果设置minWidth=maxWidth
-则无法调整列的大小。
有什么建议吗?
发布于 2017-04-04 12:52:45
我知道现在回复已经很晚了。
但是,我成功地做到了这一点,而不必更改slick.grid.js上的内容,也不必在列数组中设置min/maxWidth。
相反,我所做的是迭代列数组,添加每个列的“宽度”字段的值,然后做一个简单的数学计数,将最后一个列的宽度设置为innerWidth - totalColumsWidth + lastColumnWidth。
代码:
function lastColumnWidth(columns)
{
var widthSum = 0;
angular.forEach(columns, function(col) {
if(col.width) { widthSum = col.width + widthSum; }
});
if(window.innerWidth > widthSum) {
columns[columns.length-1].width = columns[columns.length-1].width + (window.innerWidth - widthSum);
}
return columns;
}
https://stackoverflow.com/questions/17360367
复制相似问题