You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中Kendo UI Grid列头不对齐、缩放窗口内容被截断如何解决

问题根因

你遇到的列错位、内容截断问题,是Kendo UI Grid启用列虚拟滚动后,初始化阶段未正确触发固定列宽布局计算导致的。手动拖拽调整列宽后,Grid内部会主动重算整体布局,因此异常消失。

修正方案
  • 第一步:移除无效配置
    删掉你给每个列的HeaderHtmlAttributes、HtmlAttributes中添加的table-layout: fixed属性,该属性是作用于table标签的,添加在th/td上不生效。
  • 第二步:给Grid设置固定总宽度
    在Grid的HtmlAttributes中添加固定宽度配置,确保表格尺寸不随浏览器窗口缩放变动,示例:
.HtmlAttributes(new {
    @class = "batch-monitor-grid batch-monitor-detail-grid batch-monitor-grid-batches",
    style = "width: 1200px;" // 宽度按你的列总宽度计算,你6列每列200px总宽就是1200px
})

job、action层级的子Grid也做同样的固定宽度配置。

  • 第三步:强制Grid初始化后重算布局
    在所有Grid的DataBound事件回调中添加Grid重排逻辑,主动触发和手动调整列宽后一致的布局计算,示例:
// 主Grid数据绑定回调BatchMonitor.onDatabound中添加
$("#batches").data("kendoGrid").resize(true);

// 子Grid的DataBound回调(onJobGridDatabound、onActionGridDatabound)也添加对应重排逻辑
function onJobGridDatabound(e) {
    e.sender.resize(true);
}
  • 可选优化:关闭不必要的列虚拟滚动
    你的列数较少,不需要启用列虚拟滚动,直接修改Scrollable配置即可大幅提升布局稳定性:
// 原配置
// .Scrollable(s => s.Virtual(GridVirtualizationMode.Columns).Height("auto"))
// 修改为
.Scrollable(s => s.Height("auto"))
  • 补充CSS配置
    添加全局样式强制Grid表格使用固定布局,确保列宽严格按你设置的数值渲染:
.batch-monitor-grid table {
    table-layout: fixed;
}

内容的提问来源于stack exchange,提问作者StealthRT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:48:04