0

在启用自动滚动功能后,即在jqGrid, v4.4.1scroll: 1的列中启用自动换行后,如果由于 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修改以不同地计算垂直滚动条的长度吗?好像是根据height of the first row x num rows (line 852 of v4.4.1). 我怀疑答案是否定的,但是......

4

1 回答 1

0

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

  1. 改变高度.ui-jqgrid tr.jqgrow td.ui-jqgrid tr.jqgroup td(如果你也使用这种风格,可能需要复制这种风格。)

    .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;
    }
    
  2. 使用Master Oleg的解决方案来限制 jqgrid 中行的最大高度。即一个自定义格式化程序,它tddiv.

注意:最后我只使用了 22px 的单行(默认),没有换行并将列设置得更宽一些——更快,并且仍然允许工具提示显示任何隐藏的文本。

于 2013-02-26T11:58:51.973 回答