UI-GRID - 动态行高 - 替代方案

时间:2015-06-11 14:57:10

标签: angular-ui-grid

我试图让一个单元格动态地扩展它的高度。

有没有办法在渲染后调整行的高度(GridRow)?

如果没有,那么我将尝试在网格中使用可扩展的网格或树。

是否可以在特定的细胞/列上显示可扩展的网格?

目前,我看到所有可扩展的网格/树网格占据了父网下的整个行。

由于

2 个答案:

答案 0 :(得分:15)

将此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;
}

答案 1 :(得分:5)

您可以在此处查看同一问题的答案:https://github.com/angular-ui/ng-grid/issues/3239#issuecomment-91045267

UI-Grid虚拟化行,这意味着它只渲染一小部分数据,并保留未查看的所有内容。这意味着网格需要知道每一行的高度,以便它可以计算定位。

如果在渲染时必须测量每一行,这会导致浏览器反复重绘,性能会很糟糕。

您会发现其他虚拟化工具(如Ionic的集合重复)具有相同的限制。

<强>更新

回答第二个问题:您可以在GridRow对象上设置public static void getCount(String name) { Map<Character, Integer> names = new HashMap<Character, Integer>(); for(int i = 0; i < name.length(); i++) { char c = name.charAt(i); Integer count = names.get(c); System.out.println(names.get(c)); System.out.println("the count"+count); if (count == null) { count = 0; } names.put(c, count + 1); System.out.println("111111111111");}` Set<Character> a = names.keySet(); for (Character t : a) { System.out.println(t + " Ocurred " + names.get(t) + " times"); } 属性(不是您的实体,您可以使用网格API中的getRow来获取GridRow对象)并且网格将渲染行时使用此高度。

还有你的第三个问题:不,expandable只能用于处理整行。可能会根据某些单元格中的点击次数更改子网格中显示的数据类型,但这可能需要对可扩展代码进行一些更改。