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

.NET6中jqGrid自动高度下配置最小高度的问题

解决jqGrid最小高度(至少3行)的问题

问题分析

你的两个方案未生效的原因:

  • 方案一:计算逻辑错误,rowNum是每页最大显示数(你设的25),不是行高;records是总记录数,不是当前页记录数;且代码存在语法错误(return语句后多了逗号)。
  • 方案二:If关键字大小写错误,且初始化阶段reccount(当前页记录数)还未加载数据,无法正确获取值;固定高度300px可能和实际行高不匹配,导致显示效果不符合预期。

正确实现方法

核心思路:在数据加载完成后,根据当前页实际记录数动态调整网格高度,保证至少预留3行的显示空间;记录数超过3行时自动适配高度,同时设置单页最大显示20条记录。

代码实现

<text>
  $('#@item.CurrencyName').jqGrid({
    url: 'GetAcctInfoWithPermission?currencyID=@item.CurrencyID&clientID=@Model.ClientID&perResult=@Model.FeeGroupPermission',
    jsonReader: {
      root: 'rows',
      page: 'page',
      total: 'total',
      records: 'records',
      repeatitems: false,
      cell: 'cell',
      id: 'id',
      userdata: 'userdata'
    },
    datatype: 'json',
    sortname: 'Account',
    gridview: true,
    altRows: true,
    autowidth: true,
    height: 'auto',
    sortable: true,
    loadonce: false,
    pager: '#pager-@item.CurrencyID',
    pagerpos: 'right',
    recordpos: 'left',
    viewrecords: true,
    rowNum: 20, // 设置单页最大显示20条记录
    rowList: [20, 50, 100], // 可选的每页显示数量选项
    loadComplete: function() {
      var $grid = $(this);
      var currentPageCount = $grid.jqGrid('getGridParam', 'reccount'); // 当前页实际记录数
      var singleRowHeight = $grid.jqGrid('getRowHeight'); // 动态获取单行高度
      // 计算3行所需总高度:单行高度*3 + 表头高度(默认约30px,可根据实际调整)
      var minGridHeight = singleRowHeight * 3 + 30;

      if (currentPageCount <= 3) {
        $grid.jqGrid('setGridHeight', minGridHeight);
      } else {
        $grid.jqGrid('setGridHeight', 'auto');
      }
    },
    // 其他配置项
    ....etc...
  });
</text>

关键细节说明

  • reccount参数:获取当前页实际显示的记录数,而非总记录数records,确保高度判断逻辑准确。
  • getRowHeight()方法:动态获取单行高度,避免固定数值导致的适配问题,适配不同样式下的行高。
  • loadComplete事件:在数据完全加载完成后再调整高度,此时reccount已能获取到正确值,保证逻辑生效。
  • 表头高度调整:如果你的网格表头高度和默认值不同,可以修改+30这个数值,比如实际表头高度为40px就改成+40。

备选简化方案(无需精确行高)

如果不需要精确计算行高,可以直接设置固定最小高度,在loadComplete中判断调整:

loadComplete: function() {
  var currentPageCount = $(this).jqGrid('getGridParam', 'reccount');
  if (currentPageCount <= 3) {
    $(this).jqGrid('setGridHeight', 300);
  } else {
    $(this).jqGrid('setGridHeight', 'auto');
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:57:27