当列支持文本换行时,jqGrid自动滚动中断

当列支持文本换行时,jqGrid自动滚动中断,jqgrid,jqgrid-asp.net,Jqgrid,Jqgrid Asp.net,启用自动滚动功能,即滚动:1,并启用jqGrid,v4.4.1的列换行功能后,如果由于在一列或多列中换行而导致行高发生变化,网格/表格将无法滚动到最后一条记录。如果所有行仅使用一行(无换行),则自动滚动功能非常有效。如果某些行使用多行(整个表格中高度可变的行),则自动滚动功能开始失效。这通常意味着您无法进入结果的最后一页,因为网格计算的垂直滚动条长度不正确 支持换行的样式: .ui-jqgrid tr.jqgrow td { font-weight: normal; overflow:

启用自动滚动功能,即
滚动:1
,并启用jqGrid,v4.4.1的列换行功能后,如果由于在一列或多列中换行而导致行高发生变化,网格/表格将无法滚动到最后一条记录。如果所有行仅使用一行(无换行),则自动滚动功能非常有效。如果某些行使用多行(整个表格中高度可变的行),则自动滚动功能开始失效。这通常意味着您无法进入结果的最后一页,因为网格计算的垂直滚动条长度不正确

支持换行的样式:

.ui-jqgrid tr.jqgrow td {
  font-weight: normal; 
  overflow: hidden; 
  white-space: pre-wrap !important; /* changed to enable word wrap */
  height: 22px;
  padding: 0 2px 0 2px;
  border-bottom-width: 1px; 
  border-bottom-color: inherit; 
  border-bottom-style: solid;
}
有办法解决这个问题吗?目前,我正在关闭文本换行,只是加宽列


是否可以修改
populateVisible
以不同方式计算垂直滚动条的长度?它似乎是根据第一行的高度x num rows(v4.4.1的第852行)来计算的。。我怀疑答案是“否”,但是…

我能想到的唯一答案是为每个td设置一个固定的高度,并且仍然允许换行。但这并不是直截了当的:

  • .ui jqgrid tr.jqgrow td
    中更改高度。(如果您也在使用,可能需要在
    .ui jqgrid tr.jqgroup td
    上复制此样式。)

  • 使用的解决方案。即,一个自定义格式化程序,它使用
    div
    将内容包装在
    td


  • 注意:最后,我只使用22px(默认值)的单行,没有包装,cols设置得更宽一点-更快,并且仍然允许工具提示显示任何隐藏的文本。

    由于没有其他选择,接受作为答案。
    .ui-jqgrid tr.jqgrow td {
      font-weight: normal; 
      overflow: hidden; 
      white-space: pre;
      height: 42px; /* higher fixed height, default is 22px */
      padding: 0 2px 0 2px;
      border-bottom-width: 1px; 
      border-bottom-color: inherit; 
      border-bottom-style: solid;
    }