我使用autoFitColumns方法,如下所述:
但在某些情况下,该方法会使列的大小过小(例如,当网格中只有1-2列时)或过大(当列包含长文本且不需要实际显示所有文本时)。
有没有办法在自动调整大小时设置最大/最小宽度?
发布于 2020-01-21 23:43:52
据我所知,这并没有内置到网格中;但是,您可以通过更新列选项来做到这一点:
var FitCols = function(){
var grid = $("#grid").data("kendoGrid");
if (grid) {
//copy current column options from the grid
var newOptions = $.extend({}, grid.getOptions().columns);
var minW = 80; //minimum column width
var maxW = 300; //maximum column width
for (var i = 0; i < grid.columns.length; i++) {
grid.autoFitColumn(i);
//after autofit, limit to max and min width
var curW = grid.columns[i].width;
var actualW = Math.max(curW, minW); //min check
actualW = Math.min(actualW, maxW); //max check
newOptions[i].width = actualW + "px";
}
grid.setOptions({ columns: newOptions });
}
}; 此代码在自动调整大小之前从网格中获取列选项。然后迭代每一列,调用autosize,根据最大值和最小值检查新的大小,将新的大小写入复制的列选项,最后将这些选项写回网格。
下面是一个dojo演示:http://dojo.telerik.com/@ezanker/EFiVoNiP
请记住,如果您有许多列,自动调整大小将以指数级变慢...
https://stackoverflow.com/questions/59817408
复制相似问题