如何更改 ui-grid 行的高度?

Posted

技术标签:

【中文标题】如何更改 ui-grid 行的高度?【英文标题】:How to change height of ui-grid row? 【发布时间】:2015-01-27 20:01:10 【问题描述】:

我正在使用ui-grid。我有很多行,这就是我使用滚动的原因。一切正常,直到我尝试更改行的高度。然后滚动变得一团糟。我在这里添加了一个示例http://plnkr.co/edit/S6ylwOVgcQp7CSsZZxpR?p=preview 这是来自 ui-grid 网站的教程之一——我唯一改变的是 CSS。我已经添加了这些规则。

.ui-grid-cell-contents 
  padding: 1px 1px;


.ui-grid-render-container-body .ui-grid-header-cell,
.ui-grid-render-container-left .ui-grid-header-cell,
.grid .ui-grid-row,
.grid .ui-grid-cell,
.grid .ui-grid-cell .ui-grid-vertical-bar 
  height: 22px !important;
  font-size: 12px;
  line-height: 20px;

.ui-grid-render-container-body .ui-grid-header-cell,
.ui-grid-render-container-left .ui-grid-header-cell,
ui-grid-header-cell 
  height: 55px !important;

.ui-grid-filter-container 
  padding: 1px 3px;

如果删除上述 CSS 规则,滚动效果会非常好。 所以我要么需要添加更多的 CSS 规则,要么需要使用网格的一些 API 才能正确设置行高。 任何帮助都感激不尽。

如何更改行高并保持滚动流畅?

更新: 这是默认网格和修改 CSS 的比较: http://plnkr.co/edit/x1nQGvpkY4bRMs9D09Ws?p=preview 尝试为每个网格上下滚动行。区别应该很明显。

【问题讨论】:

【参考方案1】:

取出:

height: 22px !important;

从 css 中添加:

rowHeight:22

到gridOptions。

我感觉这更流畅了。

Forked Plunker

【讨论】:

谢谢。正是我想要的。 我不喜欢这个解决方案。当网格高度与屏幕高度匹配时,在此处更改 CSS 会干扰 scolling 行为。它无法正确计算行高,因为我怀疑它使用代码中的 rowHeight 值而不是测量 offsetHeight()【参考方案2】:

scope.gridOptions = 行高:33 更改行高的最佳方法是使用网格选项。

【讨论】:

为什么这是最好的方法?我发现 css 更容易。 因为 ui-grid 需要 javascript 中的行高进行计算。通过使用 CSS 更改它,你会搞乱行显示【参考方案3】:

尝试将此添加到您的 css 中:

.ui-grid-viewport .ui-grid-cell-contents 
  word-wrap: break-word;
  white-space: normal !important;


.ui-grid-row, .ui-grid-cell 
  height: auto !important;


.ui-grid-row div[role=row] 
  display: flex ;
  align-content: stretch;

【讨论】:

对虚拟化的影响是否会对性能产生影响? 不,我在工作中使用它,它工作正常,没有延迟或任何影响 我找到了“padding-top: 5px;”除了自动高度之外也很有用;【参考方案4】:

只需相应地更改 grid 类即可。

.grid
    height: 70vh;

【讨论】:

以上是关于如何更改 ui-grid 行的高度?的主要内容,如果未能解决你的问题,请参考以下文章

ui-grid 的高度问题

ng-view内的角度ui-grid 100%高度

使用 rowHeight 的 ui-grid 行高:'auto'

如何在角度 ui-grid 中显示从 json 到 ui-grid 的数据

Angular ui-grid 将列宽保存为 cookie

如何在AngularJS ui-grid中对分组行进行排序?