kendo-ui - KendoUI 网格自动将列调整到最小/最大宽度
问题描述
我正在使用此处描述的 autoFitColumns 方法:
但在某些情况下,该方法会将列的大小设置得太小(例如,当网格中只有 1-2 列时)或太大(当列包含长文本并且不需要实际显示所有内容时)。
自动调整大小时有没有办法设置最大/最小宽度?
解决方案
据我所知,这不是内置在网格中的;但是,您可以通过更新列选项来做到这一点:
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,根据你的最大值和最小值检查新大小,将新大小写入复制的列选项,最后将这些选项写回网格。
这是一个道场演示: http ://dojo.telerik.com/@ezanker/EFiVoNiP
请记住,如果您有很多列,则自动调整大小会成倍地变慢......
推荐阅读
- python - 如何能够在 QListWidgets 之间拖放项目并且仍然能够使用拖放进行排序
- python - 索引错误,表示索引超出范围
- assembly - 了解汇编代码的用途
做 - java - Java 转换:dddd 格式到 mm/dd
- python - 为什么要导入python
检查错误的包裹位置 - java - 如何计算大于或等于输入参数的糖果条?
- javascript - 为什么“module.exports = (req, res) => {”会阻止我的路由工作
- bash - 预提交挂钩解决方案
- javascript - 有没有办法从下拉菜单中使用选定的选项更改 HTML 显示而不刷新?
- javascript - 我怎么知道谁实例化了一个函数?