我想以编程方式设置Kendo UI网格列的宽度。我正在使用以下代码:
function setColumnWidths(grid, options) {
for (var i = 0; i < options.columns.length; i++) {
grid.columns[i].width = options.columns[i].width;
}
}
在执行语句后在chrome中调试时,grid.columns [i] .width似乎已适当设置为新值,但是在GUI中没有任何变化,列宽保持不变。我想念什么?
我到此结束。迪翁(Dion)的解决方案为我提供了关于使用colgroup的初步思路,但是该解决方案仅限于不具有锁定列(在不同colgroup中)。
另请注意:我不想使用grid.setOptions,因为它的局限性破坏了附加的事件和标头(在使用ASP MVC帮助器呈现网格的情况下)
function setColumnWidths(grid, options) {
var lockedCount = 0;
for (var i = 0; i < options.columns.length; i++) {
if (options.columns[i].hasOwnProperty('locked')) {
if (options.columns[i].locked) {
lockedCount++;
}
}
}
for (var i = 0; i < options.columns.length; i++) {
var width = options.columns[i].width;
grid.columns[i].width = width;
if (options.columns[i].hasOwnProperty('locked') && options.columns[i].locked) {
$("#grid .k-grid-header-locked").find("colgroup col").eq(i).width(width);
$("#grid .k-grid-content-locked").find("colgroup col").eq(i).width(width);
} else {
$("#grid .k-grid-header-wrap").find("colgroup col").eq(i-lockedCount).width(width);
$("#grid .k-grid-content").find("colgroup col").eq(i - lockedCount).width(width);
}
}
// Hack to refresh grid visual state
grid.reorderColumn(1, grid.columns[0]);
grid.reorderColumn(1, grid.columns[0]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句